البرنامج المساعد للشبكات لمحرك Bevy الذي يعمل على مكتبات naia-socket وturbulence.
يسمح الجمع بين مقبس naia و turbulence بتبادل الرسائل الأولية عبر اتصال UDP أو اتصال يشبه UDP (عبر WebRTC)، أو إنشاء قنوات غير موثوقة/يمكن الاعتماد عليها للرسائل المنظمة عبر مثل هذه الرسائل المشابهة لـ UDP/UDP.
يعمل هذا المكون الإضافي في الأنظمة الأصلية (Linux وWindows وMacOS) عبر حزم UDP وفي المتصفح/WASM عبر الرسائل المشابهة لـ UDP في قناة WebRTC.
لا يزال غير مكتمل، ولكن الميزات الرئيسية تعمل. لمزيد من التفاصيل، راجع المعالم.
على تشغيل محطة واحدة:
$ 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
قم بتغيير عنوان IP في وظيفة examples/simple.rs
/ startup()
للإشارة إلى جهازك المحلي، وقم بتشغيل:
$ 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 وشاهد وحدة تحكم المتصفح في أدوات المطور. سترى نفس تبادل 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 المشروع. لقد تطورت قليلاً من مثال الكرات المربعة البسيطة وقد تكون بمثابة أساس لعبتك.