يتيح هذا المستودع استخدام netcode.io عبر ملحقات المتصفح، قبل اعتماده في المتصفحات. يتيح netcode.io الاستخدام الآمن لـ UDP في متصفحات الويب بغرض دعم ألعاب HTML5 متعددة اللاعبين. يمكن العثور على مزيد من المعلومات حول netcode.io هنا.
يتم دعم netcode.io في المتصفحات التالية عبر الملحقات:
يعد دعم الأجهزة المحمولة مستحيلًا بشكل أساسي حتى يظهر دعم netcode.io في المتصفحات محليًا، حيث لا تدعم منصات الأجهزة المحمولة الامتدادات أو الرسائل الأصلية.
لكي يعمل هذا، يتطلب الأمر تثبيت كل من ملحق المتصفح ومساعد التطبيق الأصلي الذي يقوم بإجراء اتصال netcode.io الفعلي. يستخدم الملحق واجهات برمجة تطبيقات المراسلة الأصلية المتوفرة في المتصفحات لإتاحة netcode.io عبر المساعد.
لتجربة ذلك في متصفحك، قم أولاً ببناء المساعد netcode.io.host:
go get github.com/wirepair/netcodego build - لنظام التشغيل الحاليenv GOOS=windows GOARCH=amd64 go build - للإنشاء لنظام التشغيل Windows (نمط Linux لتعيين متغيرات البيئة)env GOOS=linux GOARCH=amd64 go build - للإنشاء لنظام Linux (نمط Linux لتعيين متغيرات البيئة)env GOOS=darwin GOARCH=amd64 go build - للإنشاء لنظام التشغيل Mac (نمط Linux لتعيين متغيرات البيئة) ./netcode.io.host
يجب أن يتم تشغيل هذا بدون أخطاء، وأن يتم تثبيته كملحق مراسلة أصلي.
بعد الانتهاء من ذلك، قم بإضافة دليل browserwebext كملحق غير مضغوط.
تم توفير واجهة برمجة التطبيقات لعملاء Javascript كرمز window.netcode . يمكنك التحقق من توفر netcode.io باستخدام النمط التقليدي if (window.netcode) { ... } .
يوفر window.netcode وظيفة واحدة: createClient(callback) :
يقوم بإنشاء عميل netcode.io جديد يمكن استخدامه لاتصالات UDP الآمنة باستخدام بروتوكول netcode.io. رد الاتصال يكون على شكل callback(err, client) . إذا تم تعيين err ، فقد حدث خطأ أثناء إنشاء العميل (وسيصبح client خاليًا). وإلا فسيتم تعيين client ويكون err فارغًا. العميل الذي تم إرجاعه هو مثيل لـ Client .
يجب أن يكون protocol إما ipv4 أو ipv6 ويحدد نوع عنوان الخادم الذي يمكنك الاتصال به.
حدود:
protocol : إما ipv4 أو ipv6 .callback : رد اتصال في النموذج callback(err, client) حيث يكون err إما null أو مثيلًا لـ Error ، ويكون client إما null أو مثيلًا Client . يتحقق لمعرفة ما إذا كان المستخدم قد قام بتثبيت مساعد netcode.io. رد الاتصال يكون على شكل callback(err, isPresent) ، حيث يكون err إما null أو مثيلًا Error . إذا لم يكن هناك خطأ، فإن isPresent هو قيمة منطقية تشير إلى ما إذا كان المساعد الأصلي قد تم تثبيته أم لا.
إذا لم يتم تثبيت مساعد netcode.io، فيجب عليك توجيه المستخدم إلى https://github.com/RedpointGames/netcode.io-browser/releases/tag/latest حيث يمكن تثبيت مساعد netcode.io بسهولة في نقرات قليلة.
حدود:
callback : رد اتصال في النموذج callback(err, isPresent) حيث يكون err إما null أو مثيلًا لـ Error ، ويكون isPresent إما null أو منطقيًا. يضبط معدل التجزئة لعميل netcode.io، معبرًا عنه بعدد مرات التجزئة في الثانية لاستلام وإرسال الحزم. معدل القراد للعملاء الافتراضي هو 60 ؛ أي 60 مرة في الثانية.
حدود:
tickRate : عدد صحيح يساوي أو أكبر من 1 .callback : رد اتصال في النموذج callback(err) حيث يكون err إما null أو مثيل لـ Error . يتصل بخادم netcode.io باستخدام الرمز المميز المحدد. يجب أن يكون token مثيلاً لـ Uint8Array ويمثل رمز netcode.io المستلم من خادم المصادقة.
لا يمكنك استخدام netcode.io لإرسال حزم UDP إلى عناوين IP عشوائية؛ بدلاً من ذلك، يجب أن يكون لديك خادم مصادقة يستخدم مكتبة netcode.io (أو تطبيق متوافق) يمكنه إنشاء الرموز المميزة وتوقيعها باستخدام قائمة عناوين IP لخادم اللعبة ومفتاح خاص مشترك بين خادم المصادقة وخوادم الألعاب.
في معظم السيناريوهات الشائعة، سيوفر خادم المصادقة الخاص بك الرمز المميز كجزء من طلب AJAX. إذا كنت تستخدم نظام حساب مستخدم، فستوفر الرموز المميزة بعد تسجيل دخول المستخدم إلى لعبتك، مع الإشارة إلى الخادم المصرح للعميل بالاتصال به.
حدود:
token : مثيل Uint8Array الذي يحتوي على بيانات الرمز المميز.callback : رد اتصال في النموذج callback(err) حيث يكون err إما null أو مثيل لـ Error . يرسل حزمة إلى الخادم المتصل باستخدام packetBuffer كبيانات. يجب أن يكون packetBuffer مثيلًا لـ Uint8Array .
حدود:
token : مثيل Uint8Array الذي يحتوي على بيانات الحزمة المراد إرسالها.callback : رد اتصال في النموذج callback(err) حيث يكون err إما null أو مثيل لـ Error . إرجاع الحالة الحالية للعميل كسلسلة. الحالة التي تم إرجاعها هي واحدة من: connected أو connectionDenied أو connectionRequestTimeout أو connectionResponseTimeout أو connectionTimedOut أو connectTokenExpired أو disconnected أو invalidConnectToken ConnectToken أو sendingConnectionRequest أو sendingConnectionResponse أو destroyed .
حدود:
callback : رد اتصال في النموذج callback(err, state) حيث يكون err إما null أو مثيلًا لـ Error . state إما null (في حالة وجود خطأ) أو إحدى الحالات المذكورة أعلاه.يدمر العميل، ويفصله عن الخادم وينظف أي موارد مرتبطة به. بمجرد تدمير العميل، لا يمكن إعادة استخدامه.
حدود:
callback : رد اتصال في النموذج callback(err) حيث يكون err إما null أو مثيل لـ Error . يضيف مستمع الحدث إلى العميل. type الوحيد المدعوم حاليًا هو receive ، والذي يتم تشغيله عندما يتلقى العميل حزمة من الخادم.
receive رد الاتصال يكون على شكل callback(clientId, buffer) حيث clientId هو معرف العميل الصادر في الأصل عن خادم المصادقة والمخزن buffer هو الحزمة المستلمة كمثيل لـ Uint8Array .
حدود:
type : أحد الأنواع المدعومة المذكورة أعلاه.callback : رد اتصال يختلف شكله حسب type . يتم توفير رمز ملحق المضيف هذا بموجب ترخيص MIT.
الأهداف الأساسية لهذا المشروع حاليا هي:
يجب أن تكون جميع طلبات السحب متاحة بموجب ترخيص MIT.