SuperSocket 基本配置
關鍵字: 配置文檔, 配置示例, 根配置, 服務器實例配置, Windows服務配置php
一個配置示例
<?xml version="1.0"?> <configuration> <configSections> <section name="superSocket" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine" /> </configSections> <appSettings> <add key="ServiceName" value="SupperSocketService" /> </appSettings> <superSocket> <servers> <server name="TelnetServerA" serverTypeName="TelnetServer" ip="Any" port="2020"> </server> <server name="TelnetServerB" serverTypeName="TelnetServer" ip="Any" port="2021"> </server> </servers> <serverTypes> <add name="TelnetServer" type="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"/> </serverTypes> </superSocket> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> </configuration>
根配置
配置節點 "superSocket" SuperSocket 配置的根節點,它定義了 SuperSocket 所須要的全局參數。 讓咱們先看下根節點的全部配置屬性:bootstrap
- maxWorkingThreads: 線程池最大工做線程數量;
- minWorkingThreads: 線程池最小工做線程數量;
- maxCompletionPortThreads: 線程池最大完成端口線程數量;
- minCompletionPortThreads: 線程池最小完成端口線程數量;
- disablePerformanceDataCollector: 是否禁用性能數據採集;
- performanceDataCollectInterval: 性能數據採集頻率 (單位爲秒, 默認值: 60);
- isolation: SuperSocket 服務器實例隔離級別
- None - 無隔離
- AppDomain - 應用程序域級別的隔離,多個服務器實例運行在各自獨立的應用程序域之中
- Process - 進程級別的隔離,多個服務器實例運行在各自獨立的進程之中
- logFactory: 默認logFactory的名字, 全部可用的 log factories定義在子節點 "logFactories" 之中, 咱們將會在下面的文檔中介紹它;
- defaultCulture: 整個程序的默認 thread culture,只在.Net 4.5中可用;
服務器實例配置
在根節點中,有一個名爲 "servers" 的子節點,你能夠定義一個或者多個server節點來表明服務器實例。 這些服務器實例能夠是同一種 AppServer 類型, 也能夠是不一樣的類型。服務器
Server 節點的全部屬性以下:網絡
- name: 服務器實例的名稱;
- serverType: 服務器實例的類型的完整名稱;
- serverTypeName: 所選用的服務器類型在 serverTypes 節點的名字,配置節點 serverTypes 用於定義全部可用的服務器類型,咱們將在後面再作詳細介紹;
- ip: 服務器監聽的ip地址。你能夠設置具體的地址,也能夠設置爲下面的值 Any - 全部的IPv4地址 IPv6Any - 全部的IPv6地址
- port: 服務器監聽的端口;
- listenBacklog: 監聽隊列的大小;
- mode: Socket服務器運行的模式, Tcp (默認) 或者 Udp;
- disabled: 服務器實例是否禁用了;
- startupOrder: 服務器實例啓動順序, bootstrap 將按照此值的順序來啓動多個服務器實例;
- sendTimeOut: 發送數據超時時間;
- sendingQueueSize: 發送隊列最大長度, 默認值爲5;
- maxConnectionNumber: 可容許鏈接的最大鏈接數;
- receiveBufferSize: 接收緩衝區大小;
- sendBufferSize: 發送緩衝區大小;
- syncSend: 是否啓用同步發送模式, 默認值: false;
- logCommand: 是否記錄命令執行的記錄;
- logBasicSessionActivity: 是否記錄session的基本活動,如鏈接和斷開;
- logAllSocketException: 是否記錄全部Socket異常和錯誤;
- clearIdleSession: true 或 false, 是否認時清空空閒會話,默認值是 false;
- clearIdleSessionInterval: 清空空閒會話的時間間隔, 默認值是120, 單位爲秒;
- idleSessionTimeOut: 會話空閒超時時間; 當此會話空閒時間超過此值,同時clearIdleSession被配置成true時,此會話將會被關閉; 默認值爲300,單位爲秒;
- security: Empty, Tls, Ssl3. Socket服務器所採用的傳輸層加密協議,默認值爲空; 你也能夠設置多個值,如 "Tls11,Tls12";
- maxRequestLength: 最大容許的請求長度,默認值爲1024;
- textEncoding: 文本的默認編碼,默認值是 ASCII;
- defaultCulture: 此服務器實例的默認 thread culture, 只在.Net 4.5中可用並且在隔離級別爲 'None' 時無效;
- disableSessionSnapshot: 是否禁用會話快照, 默認值爲 false.
- sessionSnapshotInterval: 會話快照時間間隔, 默認值是 5, 單位爲秒;
- keepAliveTime: 網絡鏈接正常狀況下的keep alive數據的發送間隔, 默認值爲 600, 單位爲秒;
- keepAliveInterval: Keep alive失敗以後, keep alive探測包的發送間隔,默認值爲 60, 單位爲秒;
-
certificate: 這各節點用於定義用於此服務器實例的X509Certificate證書的信息session
它有兩種用法:app
-
從文件加載證書socket
<certificate filePath="localhost.pfx" password="supersocket" />
-
從本地證書庫加載證書性能
<certificate storeName="My" storeLocation="LocalMachine" thumbprint="f42585bceed2cb049ef4a3c6d0ad572a6699f6f3"/>
-
-
connectionFilter: 定義該實例所使用的鏈接過濾器的名字,多個過濾器用 ',' 或者 ';' 分割開來。 可用的鏈接過濾器定義在根節點的一個子節點內,將會在下面的文檔中作更多介紹;ui
-
commandLoader: 定義該實例所使用的命令加載器的名字,多個過濾器用 ',' 或者 ';' 分割開來。 可用的命令加載器定義在根節點的一個子節點內,將會在下面的文檔中作更多介紹;編碼
-
logFactory: 定義該實例所使用的日誌工廠(LogFactory)的名字。 可用的日誌工廠(LogFactory)定義在根節點的一個子節點內,將會在下面的文檔中作更多介紹; 若是你不設置該屬性,定義在根節點的日誌工廠(LogFactory)將會被使用,若是根節點也未定義日誌工廠(LogFactory),該實例將會使用內置的 log4net 日誌工廠(LogFactory);
-
listeners: 此配置節點用於支持一個服務器實例監聽多個IP/端口組合。 此配置節點應該包含一個或者多個擁有一下屬性的listener節點:
ip: the listening ip; port: the listening port; backlog: the listening back log size; security: the security mode (None/Default/Tls/Ssl/...);
例如:
<server name="EchoServer" serverTypeName="EchoService"> <listeners> <add ip="Any" port="2012" /> <add ip="IPv6Any" port="2012" /> </listeners> </server>
-
receiveFilterFactory: 定義該實例所使用的接收過濾器工廠的名字;
服務器類型配置
服務器類型節點是一個在根節點下面的配置集合。你能夠添加一個或者多個擁有屬性'name'和'type'的配置元素:
<serverTypes> <add name="TelnetServerType" type="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"/> </serverTypes>
因爲上面定一個服務器類型的名稱爲 "TelnetServerType",你能夠將服務器實例節點的屬性"serverTypeName"設置爲 "TelnetServerType", 用於運行該類型的服務器:
<server name="TelnetServerA" serverTypeName="TelnetServerType" ip="Any" port="2020"> </server>
Log Factories 配置
和服務器類型配置節點相同, 一也能夠定義一個或者多個L日誌工廠(LogFatory) 而後再服務器實例中使用。 惟一的區別是它能夠設置在根配置節點上:
<logFactories> <add name="ConsoleLogFactory" type="SuperSocket.SocketBase.Logging.ConsoleLogFactory, SuperSocket.SocketBase" /> </logFactories>
在根節點設置LogFactory:
<superSocket logFactory="ConsoleLogFactory"> ... ... </superSocket>
在服務器節點設置LogFactory:
<server name="TelnetServerA" logFactory="ConsoleLogFactory" ip="Any" port="2020"> </server>
配置智能感知提示
SuperSocket 提供了在線的 XSD (XML Schema Document) 來幫助你方便的進行配置。 你只需在你的SuperSocket 配置節中增長三行代碼便可:
<superSocket xmlns="http://schema.supersocket.net/supersocket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.supersocket.net/supersocket http://schema.supersocket.net/v1-6/supersocket.xsd"> <!----> </superSocket>
而後你就能夠在你更新 SuperSocket 配置的時候得到智能感知的自動提示功能:
SuperSocket Windows 服務的配置
你可能知道, SuperSocket提供了一個能夠Windows服務形式運行的容器 "SuperSocket.SocketService.exe".
你能夠經過配置來定義此Windows服務的名字:
<appSettings> <add key="ServiceName" value="SuperSocketService" /> </appSettings>
它還支持其它針對Windows服務的配置屬性:
ServiceDescription: 此Windows服務的描述 ServicesDependedOn: 此服務依賴的其餘服務; 此服務價格會在其依賴的服務啓動以後再啓動; 多個依賴服務用 ',' 或者 ';' 分割
© 2018 - GetDocs.Net - Hosted by BuyVM