naia-socket 및 turbulence 라이브러리에서 실행되는 Bevy 엔진용 네트워킹 플러그인입니다.
naia 소켓 과 터뷸런스 의 조합을 통해 UDP 또는 UDP 유사 연결(WebRTC를 통해)을 통해 원시 메시지를 교환하거나 UDP/UDP 유사 메시지를 통해 구조화된 메시지의 신뢰할 수 없는/신뢰할 수 있는 채널을 구축할 수 있습니다.
이 플러그인은 UDP 패킷을 통한 기본(Linux, Windows, MacOS)과 WebRTC 채널의 UDP 유사 메시지를 통한 브라우저/WASM에서 모두 작동합니다.
아직 미완성이지만 주요 기능은 작동하고 있습니다. 자세한 내용은 마일스톤을 참조하세요.
한 터미널에서 다음을 실행합니다.
$ env RUST_LOG=debug cargo run --example simple -- --server
다른 터미널에서 다음을 실행하세요.
$ env RUST_LOG=debug cargo run --example simple -- --client
서버와 클라이언트 사이의 PING
/ PONG
교환을 관찰합니다. 더 많은 터미널에서 더 많은 클라이언트를 실행할 수 있습니다.
한 터미널에서 다음을 실행합니다.
$ env RUST_LOG=debug cargo run --example simple --no-default-features --features use-webrtc -- --server
examples/simple.rs
/ startup()
함수에서 IP 주소를 로컬 머신을 가리키도록 변경하고 다음을 실행하세요.
$ cargo build --example simple --target wasm32-unknown-unknown --no-default-features --features use-webrtc
$ wasm-bindgen --out-dir target --target web target/wasm32-unknown-unknown/debug/examples/simple.wasm
HTTP를 통해 프로젝트 디렉터리를 제공합니다. 예를 들어( cargo install basic-http-server
):
$ basic-http-server .
http://127.0.0.1:4000을 열고 개발자 도구에서 브라우저 콘솔을 살펴보세요. Native 모드와 동일한 PING
/ PONG
교환을 볼 수 있습니다.
한 터미널에서 다음을 실행합니다.
$ env RUST_LOG=debug cargo run --example channels --features use-udp,bevy/default -- --server
두 번째 터미널에서 다음을 실행합니다.
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
세 번째(네 번째 등) 터미널에서 다음을 실행합니다.
$ env RUST_LOG=warn cargo run --example channels --features use-udp,bevy/default -- --client
클라이언트 창에 초점을 맞추고 Arrow-Left
/ Arrow-Right
커서 키를 사용하여 "공" 궤적을 변경할 수 있습니다. 제어된 공이 다른 모든 클라이언트와 동기화되는지 관찰하세요.
추가 종속성이 필요하기 때문에 브라우저 기반 그래픽 채널 예제를 별도의 저장소에 보관하기로 결정했습니다. https://github.com/ostwilkens/arugio 프로젝트를 참조하세요. 이는 단순한 사각형 공 예제에서 약간 발전했으며 게임의 기초가 될 수 있습니다.