OpenP2P
1.0.0
可供数千名玩家同时使用的点对点网络库。
NetworkClient/NetworkServer
-> NetworkProtocol
-> NetworkSocket
-> NetworkThread
-> NetworkChannel
-> NetworkPacket
->NetworkMessage
NetworkChannel 定义了可以创建的消息类型。 NetworkMessage 派生类执行数据包缓冲区的序列化。您创建消息,配置消息变量,然后发送 ReliableMessage、消息或响应。 ReliableMessage 将期望来自其目标端点的响应类型消息。消息和响应是不可靠的消息。
将来,如果可能,NetworkPeer 和 NetworkPeerGroup 将允许将消息堆叠到单个数据包中。
NetworkMessage 标头编码 5 个字节,用于 ChannelType(最多 16 个通道,4 位)、SendType(消息/响应 1 位)、Reliable(是/否 1 位)、重定向(1 位 + 2 个字节用于用户 id)、消息所有者 ID (2 个字节),消息序列(2 个字节)。
当前事件系统允许在收到 NetworkMessage 时挂钩到 NetworkChannelEvents OnMessage 和 OnResponse。还有低级 NetworkSocket 事件 OnSend 和 OnReceive,以供进一步定制。
发送、接收和接收处理是主线程之上的 3 个子线程。
构建可以发送可靠和不可靠消息的 P2P 系统,并通过基于位置的拓扑连接用户。最终目标是在单个服务器上支持 1,000 多名实时玩家。