#udp-server #web-rtc #udp #networking #server #server-client #udp-client

naia-server

一个服务器,使用UDP或WebRTC通信来发送/接收连接客户端的消息,并将注册的实体/组件同步到相关客户端

30个版本 (18个破坏性版本)

0.22.0 2024年1月10日
0.21.1 2023年8月25日
0.21.0 2023年4月23日
0.20.0 2023年3月20日
0.1.3 2020年7月7日

#1184 in 网络编程

Download history 15/week @ 2024-03-10 4/week @ 2024-03-17 119/week @ 2024-03-31 6/week @ 2024-04-07 1/week @ 2024-04-14 2/week @ 2024-05-19

每月292次下载
2 crates 中使用

MIT/Apache

615KB
15K SLoC

Latest Version API Documentation Discord chat MIT/Apache

naia

a networking architecture for interactive applications

一个跨平台(包括Wasm!)网络引擎,旨在使Rust的多玩家游戏开发变得极其简单和快速。

naia帮助您轻松定义一个公共的、共享的协议,允许服务器与客户端交换信息。然后,naia简化了在服务器与客户端之间发送/接收该协议部分作为可靠/不可靠消息的过程,并且还维护了一个与每个客户端同步的实体池,这些客户端处于“作用域”内。实体被“作用域化”到与它们共享同一房间的客户端,并且足够可定制,例如,仅当实体在客户端视图中时或根据某些其他标准时,才保持实体的持久和同步。

API深受Nengi.jsColyseus JavaScript多玩家网络库的启发。内部实现遵循Tribes 2网络模型

非常感谢Kyren的支持及webrtc-unreliable,以及Laminar的作者,因为他们提供的代码。

任何帮助都受欢迎,请与我联系!我欢迎任何批评/反馈,以改进这个项目。

目前确保在Web和Linux上工作,尽管已经报告说Windows和MacOS也能工作。如果您发现不一致之处,请提交问题,我将尽力解决。

如需更多信息,请查看常见问题解答(FAQ)

演示

更全面的文档/教程正在路上,但截至目前,开始使用naia的最佳方式是浏览基本演示,该演示展示了大部分功能。

服务器

在Linux上运行UDP服务器演示:(将能够与Linux客户端通信)

1. cd /naia/demos/basic/server
2. cargo run

在Linux上运行WebRTC服务器演示:(将能够与Web客户端通信)

1. // go to (https://docs.rs/openssl/latest/openssl/) to install openssl on your machine
2. cd /naia/demos/basic/server
3. cargo run

客户端

在Linux上运行UDP客户端演示:(将能够与UDP服务器通信)

1. cd /naia/demos/basic/client/wasm_bindgen
2. cargo run

在Web上运行WebRTC客户端演示:(将能够与WebRTC服务器通信)

1. cargo install cargo-web  // should only need to do this once if you haven't already
2. cargo install cargo-make // should only need to do this once if you haven't already
3. cd /naia/demos/basic/client/wasm_bindgen
4. make serve
5. Web page will be blank - check debug console to see communications from the server

已知问题

要运行miniquad客户端,您需要安装以下软件

sudo apt-get install libxi-dev libgl1-mesa-dev

依赖项

~7–24MB
~429K SLoC