SuperSocket 基本配置

关键字: 配置文档, 配置示例, 根配置, 服务器实例配置, Windows服务配置

一个配置示例

<?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 所需要的全局参数。 让我们先看下根节点的所有配置属性:

服务器实例配置

在根节点中,有一个名为 "servers" 的子节点,你可以定义一个或者多个server节点来代表服务器实例。 这些服务器实例可以是同一种 AppServer 类型, 也可以是不同的类型。

Server 节点的所有属性如下:

服务器类型配置

服务器类型节点是一个在根节点下面的配置集合。你可以添加一个或者多个拥有属性'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-5/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: 此服务依赖的其他服务; 此服务价格会在其依赖的服务启动之后再启动; 多个依赖服务用 ',' 或者 ';' 分割