《連載 | 物聯網框架ServerSuperIO教程》2.服務例項的配置引數說明
阿新 • • 發佈:2018-12-27
#region 全域性 [Category("1.全域性"), DisplayName("ServerSession"), Description("標識服務的唯ID,一般為Guid"), DefaultValue(""), ReadOnly(true)] public string ServerSession { get; set; } [Category("1.全域性"), DisplayName("ServerName"), Description("標識服務的標題名稱"), DefaultValue("")] public string ServerName { get; set; } [Category("1.全域性"), DisplayName("DeliveryMode"), Description("接收資料後的分佈策略,包括:按裝置IP分發(DeviceIP)、按裝置編碼分發(DeviceCode)"), DefaultValue(DeliveryMode.DeviceIP)] public DeliveryMode DeliveryMode { get; set; } [Category("1.全域性"), DisplayName("ControlMode"), Description("排程裝置驅動和IO例項的策略,包括:迴圈模式(Loop)、併發模式(Parallel)、自主模式(Self)和單例模式(Singleton)"), DefaultValue(ControlMode.Loop)] public ControlMode ControlMode { get; set; } [Category("1.全域性"), DisplayName("StartReceiveDataFliter"), Description("標識接收資料後是否按協議過濾器的規劃過濾資料,不啟用則直接返回資料"), DefaultValue(false)] public bool StartReceiveDataFliter { get; set; } [Category("1.全域性"), DisplayName("StartCheckPackageLength"), Description("標識是否檢測資料長度,如果開啟,那麼會呼叫協議驅動的GetPackageLength介面,直到接收返回的資料長度的資料"), DefaultValue(false)] public bool StartCheckPackageLength { get; set; } #endregion #region 串列埠 [Category("2.串列埠"), DisplayName("ComReadBufferSize"), Description("設定一次接收資料的位元組陣列最大值"), DefaultValue(1024)] public int ComReadBufferSize { get; set; } [Category("2.串列埠"), DisplayName("ComWriteBufferSize"), Description("設定一次傳送資料的位元組陣列最大值"), DefaultValue(1024)] public int ComWriteBufferSize { get; set; } [Category("2.串列埠"), DisplayName("ComReadTimeout"), Description("設定一次讀取資料的超時時間"), DefaultValue(1000)] public int ComReadTimeout { get; set; } [Category("2.串列埠"), DisplayName("ComWriteTimeout"), Description("設定一次傳送資料的超時時間"), DefaultValue(1000)] public int ComWriteTimeout { get; set; } [Category("2.串列埠"), DisplayName("ComLoopInterval"), Description("輪詢模式下,傳送和接收資料中間的等待時間,串列埠通訊不支援其他控制模式"), DefaultValue(1000)] public int ComLoopInterval { get; set; } #endregion #region 網路 [Category("3.網路"), DisplayName("NetReceiveBufferSize"), Description("設定一次接收資料的位元組陣列最大值"), DefaultValue(1024)] public int NetReceiveBufferSize { get; set; } [Category("3.網路"), DisplayName("NetSendBufferSize"), Description("設定一次傳送資料的位元組陣列最大值"), DefaultValue(1024)] public int NetSendBufferSize { get; set; } [Category("3.網路"), DisplayName("NetReceiveTimeout"), Description("設定一次讀取資料的超時時間"), DefaultValue(1000)] public int NetReceiveTimeout { get; set; } [Category("3.網路"), DisplayName("NetSendTimeout"), Description("設定一次傳送資料的超時時間"), DefaultValue(1000)] public int NetSendTimeout { get; set; } [Category("3.網路"), DisplayName("NetLoopInterval"), Description("輪詢模式下,傳送和接收資料中間的等待時間"), DefaultValue(1000)] public int NetLoopInterval { get; set; } [Category("3.網路"), DisplayName("MaxConnects"), Description("允許客戶端最大的連線數,超取最大值,自動關閉遠端連線"), DefaultValue(1000)] public int MaxConnects { get; set; } [Category("3.網路"), DisplayName("KeepAlive"), Description("檢測死連線、半連線的一種機制"), DefaultValue(5000)] public uint KeepAlive { get; set; } [Category("3.網路"), DisplayName("ListenPort"), Description("偵聽接收資料的埠"), DefaultValue(6699)] public int ListenPort { get; set; } [Category("3.網路"), DisplayName("BackLog"), Description("定佇列中最多可容納的等待接受的傳入連線數"), DefaultValue(1000)] public int BackLog { get; set; } [Category("3.網路"), DisplayName("CheckSameSocketSession"), Description("對一個固定的裝置,只允許有一個有效連線,重複IP多次連線,將斷開之前的連線"), DefaultValue(true)] public bool CheckSameSocketSession { get; set; } [Category("3.網路"), DisplayName("SocketMode"), Description("標識裝置是TcpServer、TcpClient模式,如果標識TcpClient模式,會主動連線遠端IP和埠"), DefaultValue(SocketMode.Tcp)] public SocketMode SocketMode { get; set; } [Category("3.網路"), DisplayName("ClearSocketSession"), Description("標識是否清理連線,如果一個連線在一定時間範圍內沒有接收到資料,將主動斷開連線"), DefaultValue(false)] public bool ClearSocketSession { get; set; } [Category("3.網路"), DisplayName("ClearSocketSessionInterval"), Description("如果標識清理連線,那麼在此標識清理連線間隔時間"), DefaultValue(10)] public int ClearSocketSessionInterval { get; set; } [Category("3.網路"), DisplayName("ClearSocketSessionTimeOut"), Description("如果標識清理連線,那麼在此標識多長時間沒有接收到資料進行清理"), DefaultValue(30)] public int ClearSocketSessionTimeOut { get; set; } #endregion