为什么使用配置来启动
- 拒绝硬编码(写死代码)
- SuperSocket提供多种有用的配置选项
- 充分利用SuperSocket的工具
如何通过带引导程序的配置启动服务器
SuperSocket配置结点使用.NET默认的配置技术,下面是一个为SuperSocket设计的配置结点:
<configsections> <section name="superSocket" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine" /> </configsections>
服务器实例配置
<supersocket> <servers> <server ip="Any" name="TelnetServer" port="2020" serverType="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"> </server> </servers> </supersocket>
接下来,解释配置中的server结点:
- name:AppServer实例的名字
- serverType:将被运行的AppServer的全名。serverType属性中的值由“,”分隔,第一部分是Serve类的全称(命名空间+类名);后一部分则是该类所在的程序集的名称,通常也就是你自己的项目名称(注意区别于命名空间)。
- ip:监听的IP
- port:监听的端口
完整的配置介绍将在下一篇文章中。
使用引导程序来启动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(); //停止服务器 bootstrap.Stop(); Console.WriteLine("The server was stopped!"); Console.ReadKey(); }
一些配置的例子:
- 服务器类型结点:
- 多服务器实例:
<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>
<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提供的运行容器——SuperSocket.SocketService.exe
直接使用SuperSocket.Socket.Service.exe
- 确保你的服务器所需的所有程序集,包括SuperSocket.SocketService.exe都存放在同一目录下。
- 将你的SuperSocket配置结点复制到SuperSocket.SocketService.exe.config文件中。
- 直接运行SuperSocket.SocketService.exe,你定义的服务器将开始运行。
将SuperSocket.SocketService.exe安装为Windows服务
使用命令行参数“-i”可以将SuperSocket.SocketService.exe安装为Windows服务:SuperSocket.SocketService.exe -i
安装后的Windows服务的名称被定义在配置文件中,可以根据自己的需要修改。
<appSettings> <add key="ServiceName" value="SupperSocketService" /> </appSettings>
可以通过命令行参数“-u”来卸载已安装的服务:SuperSocketService.exe -u
没有评论:
发表评论