zoukankan      html  css  js  c++  java
  • SuperSocket 1.4系列文档(4) 使你的SuperSocket AppServer运行

    在SocketService中运行你的AppServer

    SuperSocket 提供了一个名叫"SocketService"的项目,它是一个能够让AppServer运行于其中的容器。 SocketService能够使你的AppServer 以控制台或者windows服务的形式运行 (需注册)。

    有两种方法可以让你的AppServer运行于SocketService之中:

    1. 复制你的AppServer的dll输出到SocketService的编译输出目录
    2. 在你的AppServer项目中引用SocketService 项目。如果你是用这种方式,你需要新建一个名为"SuperSocket.SocketService.exe.config"的配置文件,并且设置这个文件的Build Action为Content和Copy if newer。新建此文件的原因是VS.NET不会复制SocketService项目的配置文件到此项目的输出目录,但最终运行的程序是SuperSocket.SocketService.exe,所以文件SuperSocket.SocketService.exe.config是必须的。QuickStart中的示例项目都是通过这种方式构建。

    不管你用哪一种方法,在你运行SocketService之前,必须添加你的socket服务器定义到配置文件SuperSocket.SocketService.exe.config之中。

    这里有一个配置示例:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <section name="socketServer" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine"/>
        </configSections>
        <appSettings>
            <add key="ServiceName" value="BroardcastService"/>
        </appSettings>
        <socketServer loggingMode="IndependantFile">
            <servers>
                <server name="BroardcastServer"
                        serviceName="BroardcastService"
                        ip="Any" port="911" mode="Async">
                </server>
            </servers>
            <services>
                <service name="BroardcastService"
                         type="SuperSocket.QuickStart.BroadcastService.BroadcastServer, SuperSocket.QuickStart.BroadcastService" />
            </services>
        </socketServer>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
        </startup>
    </configuration>

    同时,将SuperSocket提供的log4net配置文件(Config/log4net.config)包含到你的启动项目里面(同样是Config目录下),并确保它编译时被输出。

    定义你的SocketServer时候主要有两个地方需要注意:

    1)  定义你的服务:

    <services>
        <service name="BroardcastService"
                 type="SuperSocket.QuickStart.BroadcastService.BroadcastServer, SuperSocket.QuickStart.BroadcastService" />
    </services>

    服务是指你在此程序中能运行的的类型,你应该将你实现的AppServer的完整类型名称和简称添加到你的服务节点。

    2) 定义你的服务器实例

    <servers>
        <server name="BroardcastServer"
                serviceName="BroardcastService"
                ip="Any" port="911" mode="Async">
        </server>
    </servers>

    在你添加完服务节点之后,你就可以基于你刚添加的服务来添加你的服务器实例。一个Server xml节点代表了一个服务器运行实例。Server节点的属性"serviceName" 被用来确定一个服务器实例运行的AppServer的类型。Server节点还有其他必填属性,例如: name, ip 和 port。你还可以定义其他的可选属性,相关的属性介绍你可以在下面的链接中找到:http://www.cnblogs.com/jzywh/archive/2011/04/20/2022946.html

     

    你完成的配置之后,你就可以启动你的SuperSocket了。

    1)  以控制台的形式启动

    运行输出目录的批处理文件 "RunServer.bat" 就可以让你的SuperSocket 以控制台程序的形式运行

    2) 以Windows服务的形式启动

    SocketService项目提供了两个批处理文件用于windows service,InstallService.bat用于安装SuperSocket服务,UninstallService.bat 用于卸载服务。因为SocketService默认的启动方式是手动启动,所以在安装完服务之后请手动启动服务。

     

    你也可以在你自己的应用程序容器中运行SuperSocket.

    添加SuperSocket相关的引用到你的项目,然后添加下面的代码到你的应用程序入口:

    LogUtil.Setup();
     
    SocketServiceConfig serverConfig = ConfigurationManager.GetSection("socketServer") as SocketServiceConfig;
     
    if (!SocketServerManager.Initialize(serverConfig))
    {
         return;
    }
     
    if (!SocketServerManager.Start())
    {
         SocketServerManager.Stop();
         return;
    }

    无论怎样,在应用程序配置文件中添加SuperSocket相关的配置都是必需的, 同时确保把SuperSocket提供的log4net配置文件log4net.config输出到目录/Config也是使日志功能正常工作的必要条件。

    作者:江振宇
    出处:http://jzywh.cnblogs.com
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    十大排序算法总结
    Java Web之监听器
    JVM 内存模型
    设计模式--装饰者模式和建造者模式
    Java Web之过滤器
    jsp-servlet篇(三)
    jsp- servlet篇(二)
    jsp- servlet篇(一)
    xml和xml解析
    k8s环境部署(一)
  • 原文地址:https://www.cnblogs.com/jzywh/p/2028703.html
Copyright © 2011-2022 走看看