يعرض هذا المشروع محادثة HTML بسيطة باستخدام WebRTC ومبرمجة في Rust ومترجمة إلى WASM. العرض المباشر
بعد قراءة هذا المنشور الرائع الذي كتبه فريق Cheerp، أردت معرفة ما إذا كان من الممكن فعل الشيء نفسه مع الصدأ "النقي" باستخدام WASM.
نظرًا لأن القيام بلعبة من الصفر كان أمرًا معقدًا للغاية كخطوة أولى، فقد كنت أهدف فقط إلى اللعب مع Rust وHTML (باستخدام Yew) وWebRTC من خلال تطبيق الدردشة. سيأتي 3D وWebGL مرة أخرى.
اتضح أنه ليس من الصعب جدًا تشغيل شيء ما كما ترون أدناه:
إذا حاولت التشغيل محليًا، فأفضل الاختبار باستخدام Chrome محليًا لأنني واجهت مشكلات مع Firefox. كن حذرًا أيضًا من أن بعض الإضافات قد تمنع اتصالات WebRTC. وأيضًا، إذا كنت تختبر مع صديق، فقد لا يعمل الأمر لأنني أستخدم خادم STUN فقط. من خلال الاختبارات التي أجريتها، اكتشفت أن الاتصالات غالبًا ما تكون محظورة على شبكات الشركة وأن استخدام خادم TURN من شأنه أن يحل المشكلة. ولكن على عكس خادم STUN، لا توجد خوادم TURN مجانية. أخيرًا، لم تتم معالجة الأخطاء بشكل كامل حتى الآن لأنني لا أعرف كيف أتعامل مع الأخطاء فعليًا (وأيضًا ما تسمح لي واجهة برمجة تطبيقات WebRTC به). إذا واجهت مشكلة، فأعد تحميل الصفحة على كلا الجانبين وحاول مرة أخرى.
لبناء هذا المشروع تحتاج إلى:
cargo install wasm-pack
cargo install http-server
لتشغيله بمجرد الإنشاء، عليك الكتابة
wasm-pack build --target web --no-typescript --out-dir ./static/pkg
static
باستخدام http-server -p 8080
(بدلاً من ذلك يمكنك استخدام أي خادم ملفات ثابت مثل python3 -m http.server
)