منذ حوالي ستة أشهر ، قررت أن أصنع برنامجًا للتحكم في جهاز كمبيوتر من خلال متصفح. لقد بدأت بخادم HTTP بسيط أحادي المقبس يقوم بتمرير الصور إلى المتصفح وتلقي إحداثيات المؤشر للتحكم.
في مرحلة معينة ، أدركت أن تقنية WebRTC مناسبة تمامًا لهذه الأغراض. يحتوي متصفح Chrome على مثل هذا الحل ، ويتم تثبيته من خلال الامتداد. لكنني أردت عمل برنامج خفيف الوزن سيعمل بدون تثبيت.
في البداية حاولت استخدام المكتبة التي توفرها Google ، ولكن بعد تجميعها يستغرق 500 ميجابايت. اضطررت إلى تنفيذ مكدس WebRTC بالكامل تقريبًا من البداية ، وتمكنت من احتواء كل شيء في ملف exe بحجم 2.5 ميجابايت. ساعد صديق في الواجهة في JS ، وهذا ما حدث في النهاية.
نبدأ البرنامج:
افتح الرابط في علامة تبويب المتصفح واحصل على وصول كامل إلى سطح المكتب:
رسم متحرك صغير لعملية إنشاء الاتصال:
بدعم من Chrome و Firefox و Safari و Opera.
من الممكن نقل الصوت والمكالمات الصوتية وإدارة الحافظة ونقل الملفات ومفاتيح الاتصال السريع.
أثناء العمل في البرنامج ، كان عليّ دراسة عشرات من طلبات التعليقات (RFC) وفهم أنه لا توجد معلومات كافية على الإنترنت حول تشغيل بروتوكول WebRTC. أريد أن أكتب مقالًا عن التقنيات التي يستخدمها ، وأريد معرفة الأسئلة التالية التي تهم المجتمع:
- بروتوكول وصف بيانات تدفق SDP
- مرشحو ICE وإنشاء اتصال بين نقطتين ، خوادم STUN و TURN
- اتصال DTLS ونقل المفاتيح إلى جلسة RTP
- بروتوكولات RTP و RTСP مع تشفير لنقل بيانات الوسائط
- انقل H264 و VP8 و Opus عبر RTP
- اتصال SCTP لنقل البيانات الثنائية
المصدر: www.habr.com