首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

运行你的AppServer

作者:  时间: 2011-04-25

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

定义你的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相关的配置都是必需的。