运行你的AppServer
时间:2011-04-25 来源:江大鱼
在SocketService中运行你的AppServer
SuperSocket 提供了一个名叫"SocketService"的项目,它是一个能够让AppServer运行于其中的容器。 SocketService能够使你的AppServer 以控制台或者windows服务的形式运行 (需注册)。
有两种方法可以让你的AppServer运行于SocketService之中:
- 复制你的AppServer的dll输出到SocketService的编译输出目录
- 在你的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相关的配置都是必需的。