1、简介
# ?9 u8 z; J' ?0 M, t0 l$ X# z SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架。你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等。
7 ?6 s% X3 D5 N9 ~2、特性; z' P" T) D; g1 x3 R5 j0 s
- 高性能的事件驱动通信;
- 非常简单易用; 你只需要通过创建几个类就能获得一个健壮的 Socket 服务器;
- 内置的命令行协议让你能够迅速创建一个网络命令行接口服务器;
- 强大且高性能的协议解析实现工具帮你简化了网络数据的分析工作;
- 灵活的配置功能和友好的配置 API;
- 多监听器支持; 让你在一个服务器实例内监听多个端口;
- 多服务器实例托管的支持让你从容面对复杂的部署需求;
- 应用程序域和进程级别的隔离能够满足你大部分的宿主场景;
- 内置的 SSL/TLS 加密支持;
- 会话级别的发送队列能够让你通过会话并发的发送数据,并保持高性能和可控性;
- SuperSocket 的命令处理模式让你的业务逻辑更清晰,更有条理;
- 优良的可扩展 API 支持: Command Filter, Connection Filter, Command Loader;
- 可替换的日志架构允许你使用你喜欢的日志组件;
- 动态语言的支持; 允许你用 Python 之类的脚本语言来实现命令;
- 与 Mono/Linux 保持二进制级别的兼容;
- Windows Azure 的支持;
- 内置你可以直接用于 Flash 或 Silverlight 客户端的 Socket 策略服务器;& \+ F* d% X, N" g+ r/ x
3、集成
/ m6 }4 s$ Q3 Q j3 D3 z SuperSocket 可以与 ASP.NET Core 网站并排运行。您应该做的是将 SuperSocket 注册到 ASP.NET Core 的主机构建器中,并将选项留在配置文件中或通过代码。 `8 r; V w- u" ?# X. j4 S# b
在 Program 类中,为 SuperSocket 添加更多代码行:
. N3 A4 r+ c/ u1 d7 @ //don't forget the usings
using SuperSocket;
using SuperSocket.ProtoBase;
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AsSuperSocketHostBuilder<TextPackageInfo, LinePipelineFilter>()
.UsePackageHandler(async (s, p) =>
{
// echo message back to client
await s.SendAsync(Encoding.UTF8.GetBytes(p.Text + "\r\n"));
}); 并在配置文件“appsettings.json”中保留服务器选项:& B5 q+ @8 \5 V3 Q3 ?# i9 ^+ o
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"serverOptions": {
"name": "TestServer",
"listeners": [
{
"ip": "Any",
"port": 4040
}
]
},
"AllowedHosts": "*"
} 4、开源地址# ?+ g( `# a( @, m3 o8 L- ?8 F
地址 https://github.com/kerryjiang/SuperSocket |