五、SuperSocket 基本配置

SuperSocket 基本配置

中文(中國) Toggle Dropdown
 
v1.6 Toggle Dropdown

關鍵字: 配置文檔, 配置示例, 根配置, 服務器實例配置, 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 Configuration Intellisense

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

相關文章
相關標籤/搜索