Networker
一个易于使用的.NET的TCP和UDP网络库,旨在灵活,可扩展和快速。
支持的框架
- .NET标准2.0
- .NET框架4.7+统一
特征
- TCP
- UDP
- 插座池
- 对象池
- 处理每秒数千个请求
- 使用microsoft.extensions.spentencyIndoction.serviceCollection使用依赖项注入
- 使用microsoft.extensions.logging来记录
- 使用Unity游戏引擎(仅.NET框架)
安装
Nuget软件包管理器
Install-Package Networker
然后,您必须安装以下格式化器之一
Zeroformatter
Install-Package Networker .Extensions.ZeroFormatter
消息包
Install-Package Networker .Extensions.MessagePack
Protobuf-net
Install-Package Networker .Extensions.ProtoBufNet
JSON(UTF8JSON)
Install-Package Networker .Extensions.Json
教程 – 使用Networker创建基本的Unity多人游戏
从图书馆开发人员马克·伊斯特伍德(Mark Eastwood)撰写的本教程开始
例子
创建服务器很容易。
var server = new ServerBuilder ( ) . UseTcp ( 1000 ) . UseUdp ( 5000 ) . RegisterPacketHandlerModule < DefaultPacketHandlerModule > ( ) . RegisterPacketHandlerModule < ExamplePacketHandlerModule > ( ) . UseZeroFormatter ( ) . ConfigureLogging ( loggingBuilder => { loggingBuilder . AddConsole ( ) ; loggingBuilder . SetMinimumLevel ( LogLevel . Debug ) ; } ) . Build ( ) ; server . Start ( ) ;
您可以使用依赖注入,记录和内置的挑选性来轻松处理数据包。
public class ChatPacketHandler : PacketHandlerBase < ChatPacket > { private readonly ILogger < ChatPacketHandler > _logger ; public ChatPacketHandler ( ILogger < ChatPacketHandler > logger ) { _logger = logger ; } public override async Task Process ( ChatPacket packet , IPacketContext packetContext ) { _logger . LogDebug ( \"I received the chat message: \" + packet . Message ) ; packetContext . Sender . Send ( new ChatPacket { Message = \"Hey, I got your message!\" } ) ; } }
