Fork me on GitHub

SuperSocket 1.5 Documentation译文 4 ----- SuperSocket的基本配置

一个简单的配置

<?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>

 

根配置

配置节点“SocketServer”是SuperSocket配置的根结点,它定义SuperSocket要求的全局参数。让我来解释所有的根节点的属性:

  • maxWorkingThreads: .NET线程池最大工作线程数
  • minWorkingThreads: .NET线程池最小工作线程数
  • maxCompletionPortThreads: .NET线程池最大完成线程数
  • minCompletionPortThreads: NET线程池最小完成线程数
  • disablePerformanceDataCollector: 是否禁用性能数据收集器
  • performanceDataCollectInterval: 性能数据采集的时间间隔(以秒为单位,默认值:60)
  • isolation: SuperSocket情况下隔离级别无 - 无隔离的AppDomain - 将被隔离的应用程序域服务器实例(这行是谷歌翻译出来的)
  • logFactory:默认的LogFactory的名字,所有的日志工厂的子节点“log Factories“将在该节点以下中定义

服务器配置

在的根配置节点,子节点命名为“服务器”,您可以定义一个或多个服务器配置节点,它代表应用程序服务器实例。该服务器实例的AppServer类型可以是相同的,也可以是不同的AppServer类型。所有的服务器节点的属性:

  • name:服务器实例的名称
  • serverType: 你要运行的 AppServer type全名(译者猜:名词空间+类名 如SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer)
  • serverTypeName:选择的服务器类型,所有类型的服务器的名称应该被定义在serverTypes节点以下
  • ip:监听的IP地址的服务器实例。您可以设置一个确切的IP,你也可以设置下面的值 -Any -all IPv4 address -IPv6Any -all IPv6 address
  • port: 服务器实例的监听端口
  • listenBacklog:侦听backlog的大小
  • mode: socket服务器的运行模式,TCP(默认)或UDP
  • disabled: 是否禁止服务器实例
  • startupOrder:服务器实例的启动顺序,bootstrap会按这个值启动所有服务器实例
  • sendTimeOut: 发送数据超时
  • sendingQueueSize:发送队列的最大大小
  • maxConnectionNumber: 在相同时间允许连接的最大连接数的服务器实例
  • receiveBufferSize: 接收缓冲区的大小
  • sendBufferSize: 发送缓冲区的大小
  • syncSend: 在同步模式下发送数据,默认值:false
  • logCommand: log命令是否执行记录
  • logBasicSessionActivity: 是否记录基本活动,如会话连接或关闭
  • clearIdleSession:真或假,是否清除空闲会话。默认值是false
  • clearIdleSessionInterval: 清除空闲会话的时间间隔。默认值是120,单位为秒
  • idleSessionTimeOut: 会话超时时间。默认值是300,单位为秒
  • security: 空,TLS,SSL3。socket服务器的安全选项。默认值是空的
  • maxRequestLength: 允许的最大请求长度。默认值是1024
  • disableSessionSnapshot: 是否禁用会话快照。默认值是false(估计错了..)
  • sessionSnapshotInterval: 会话快照的时间间隔。默认值是5,在几秒钟内
  • keepAliveTime: 保活命令间隔。默认值是600,单位为秒.
  • keepAliveInterval: 保活命令的失败后重试的时间间隔。默认值是60,单位为秒。
  • certificate: 它是一个配置为X509Certificate的元素将被用在此服务器实例(不懂...)

    有两种用法:

    • 一个是证书文件加载证书

      <certificate filePath="localhost.pfx" password="supersocket" />

       

    • 另一个是从本地证书存储加载证书

      <certificate storeName="My" thumbprint="‎f42585bceed2cb049ef4a3c6d0ad572a6699f6f3"/>
  • connectionFilter你将要在服务器实例中使用的连接过滤器的名称, 多个过滤器用','或';'分隔. connectionFilter将在随后的文档中引入在根节点的子节点中定义

  • commandLoader: 你将要在服务器实例中使用的命令加载器名称, 多个加载器用','或';'分隔. Commandloaders将在随后的文档中引入在根节点的子节点中定义

  • logFactory: 你将要在服务器实例中使用的日志工厂. 如果你不设置它,根配置中定义的日志工厂将被使用

  • listeners: 它是一个配置元素,其目的是支持在一台服务器实例中监听多个IP/端口. 监听节点包含一个或多个子节点的属性定义象下面这样:

    ip: 监听ip
    port: 监听端口
    backlog: 监听返回日志大小
    security: 安全模式(None/Default/Tls/Ssl/...)

    例子:

    <server name="EchoServer" serverTypeName="EchoService">
      <listeners>
        <add ip="Any" port="2012" />
        <add ip="IPv6Any" port="2012" />
      </listeners>
    </server>

     

  • requestFilterFactory:  你将要在服务器实例中使用的请求过滤器工厂名称

服务器类型配置

Server types节点是在根节点下的一个配置节点集合. 您可以添加一个或多个元素名称是“add”属性是“name”和“type”节点:

<serverTypes>
        <add name="TelnetServerType"
             type="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"/>
</serverTypes>

 

由于定义的serverTypeName是“TelnetServerType”,你可以设置配置属性“serverTypeName”在你的服务器实例中以“Telnet ServerType”这种类型运行:

   <server name="TelnetServerA"
            serverTypeName="TelnetServerType"
            ip="Any"
            port="2020">
    </server>

 

日志工厂配置

和服务器类型的配置相同,你也可以用它在服务器定义一个或多个日志工厂,也可以在根配置设置日志工厂:

<logFactories>
  <add name="ConsoleLogFactory"
       type="SuperSocket.SocketBase.Logging.ConsoleLogFactory, SuperSocket.SocketBase" />
</logFactories>

 

使用它的根配置:

<superSocket logFactory="ConsoleLogFactory">
    ...
    ...
</superSocket>

 

在服务器节点:

<server name="TelnetServerA"
       logFactory="ConsoleLogFactory"
       ip="Any"
       port="2020">
</server>

 

posted @ 2013-01-16 23:16  逗豆豆  阅读(921)  评论(0编辑  收藏  举报