Fork me on GitHub

SuperSocket 1.5 Documentation译文 3 ----- 通过配置启动SuperSocket

为什么要通过配置启动服务器

  1. 避免硬编码
  2. SuperSocket提供了很多有用的配置选项
  3. 充分利用SuperSocket的工具

如何通过BootStrap的配置启动服务器

  • 的SuperSocket配置部分使用.NET的默认配置技术,设计SuperSocket配置节:

    <configSections>
        <section name="superSocket"
             type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine" />
    </configSections>

     

  • Server实例配置

    <superSocket>
        <servers>
          <server name="TelnetServer"
              serverType="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"
              ip="Any" port="2020">
          </server>
        </servers>
    </superSocket>

     

    现在,我在这里解释配置的服务器节点:

  • name: appServer实例的名称 
    serverType: 你要运行的appServer全名
    ip: 监听ip
    port: 监听端口
  • 我们将在下一份文档中充分的介绍文中的配置。

  • 使用bootstrap启动SuperSocket

    static void Main(string[] args)
    {
        Console.WriteLine("Press any key to start the server!");
    
        Console.ReadKey();
        Console.WriteLine();
    
        var bootstrap = BootstrapFactory.CreateBootstrap();
    
        if (!bootstrap.Initialize())
        {
            Console.WriteLine("Failed to initialize!");
            Console.ReadKey();
            return;
        }
    
        var result = bootstrap.Start();
    
        Console.WriteLine("Start result: {0}!", result);
    
        if (result == StartResult.Failed)
        {
            Console.WriteLine("Failed to start!");
            Console.ReadKey();
            return;
        }
    
        Console.WriteLine("Press key 'q' to stop it!");
    
        while (Console.ReadKey().KeyChar != 'q')
        {
            Console.WriteLine();
            continue;
        }
    
        Console.WriteLine();
    
        //Stop the appServer
        bootstrap.Stop();
    
        Console.WriteLine("The server was stopped!");
        Console.ReadKey();
    }

     

  • 一些简单配置

  1. 服务器类型的节点:

    <superSocket>
            <servers>
              <server name="TelnetServer"
                  serverTypeName="TelnetServer"
                  ip="Any" port="2020">
              </server>
            </servers>
            <serverTypes>
                <add name="TelnetServer" type="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"/>
            </serverTypes>
        </superSocket>

     

  2. 多服务器实例:

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

     

SuperSocket.SocketService.exe,提供SuperSocket运行的容器

  • 直接使用SuperSocket.SocketService.exe
  1. 确保您的服务器所需的所有组件和SuperSocket.SocketService.exe都在同一个目录
  2. 将你的SuperSocket配置节点放到SuperSocket.SocketServer.exe.config内
  3. 直接运行“SuperSocket.SocketService.exe”,你定义的服务器将运行
  • 作为Windows服务安装SuperSocket.SocketService.exe

您可以在Windows服务运行一个命令行参数“-i”来安装SuperSocket.SocketService.exe:

SuperSocket.SocketSerrvice.exe -i

 

Windows service name是在配置文件中定义的,你可以根据你的需求改变它:

<appSettings>
    <add key="ServiceName" value="SupperSocketService" />
</appSettings>

 

该服务自然还可以根据命令行参数“-U”来卸载:

SuperSocket.SocketSerrvice.exe -u

 

posted @ 2013-01-16 22:44  逗豆豆  阅读(1255)  评论(3)    收藏  举报