netstack
1.0.0
电池包括用于游戏的网络箱。
[dependencies]
netstack = "0.3.0"
文档(正在进行中)
如果您有建议、错过功能或只是想取得联系,您可以在此存储库中提出问题或在 Twitter 上联系我。
为了在生产中有效地使用 netstack,您需要一个安全通道来交换初始密钥和连接令牌。建议使用 https,但这取决于您。这些示例使用 http 服务器。
(☑️表示已实施,?表示计划中或正在开发中)
基于io_uring
、 IOCP
或epoll
的传输目前超出了范围。
该板条箱不实现基于确认和超时的重传。游戏还有其他实现可靠性的方法,主要是因为当任何基于超时的机制检测到丢失的数据包时,信息已经过时。
例如,FPS 会在每个数据包中发送最后几帧的玩家输入,因此当其中一个数据包在线路上丢失时,下一个数据包会填补空白。
从服务器到客户端的游戏状态压缩通常基于客户端确认的最后一个数据包。为此,请使用MessageAcknowledged
事件和send
返回的序列号。
请参阅示例目录中的客户端/服务器示例,使用以下命令来运行它们:
cargo run -p server
cargo run -p client
Netstack 附带了一个正在进行中的用于结构(以及后来的枚举)的派生宏。
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
麻省理工学院