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 多名即時玩家。