Webrtc. مؤتمرات الفيديو في المتصفح. دردشة متعددة المستخدمين مع استخدام Webrtc واستخدامها في حلول متخصصة

WebRTC (اختصار من الاتصالات في الوقت الفعلي عبر الويب) هي تقنية تتيح لك نقل بيانات تدفق الصوت والفيديو بين المتصفحات وتطبيقات الهاتف المحمول.


تطوير هذه التكنولوجيا هو مسابقة سكايب. يمكن استخدام Webrtc لتنظيم مؤتمرات الفيديو مباشرة في المتصفح. يحتوي المشروع على شفرة مفتوحة المصدر وترويج بنشاط من قبل Google وخاصة فريق تطوير مستعرض Google Chrome.


متصفحات المستخدمين بفضل تقنية Webrtc يمكن أن تنقل البيانات إلى بعضها البعض مباشرة. لا يحتاج Webrtc إلى خادم منفصل تخزين البيانات ومعالجتها. تتم معالجة جميع البيانات مباشرة بواسطة برقا وتطبيقات المستخدمين النهائيين المحمول.


يتم دعم تكنولوجيا Webrtc من قبل جميع موزيلا فايرفوكس الشهير، أوبرا، Google Chrome (وجميع المتصفحات المستندة إلى Google Chrome)، بالإضافة إلى تطبيقات الهاتف المحمول المستندة إلى نظام Android و iOS.

خطر Webrtc.

خطر تكنولوجيا Webrtc هو تحديد عنوان IP الحقيقي الخاص بك. نظرا لأن الاتصال يذهب مباشرة مع مستخدم آخر أو متصفح أو موقع ويب أو تطبيق جوال، يتم تجاهل إعدادات الشبكة. لإنشاء روابط صوتية وفيديو، يجب على المتصفحات تبادل عناوين IP الخارجية والمحلية.

خدمة VPN مجهولة تحل هذه المشكلة واختبئ عنوان IP الحقيقي. الحد الأقصى، والذي يمكن اكتشافه هو عنوان IP محلي معين إلى شبكة VPN للمستخدم. ليس خطرا، حيث سيتم عرض نفس عناوين IP المحلية إذا كنت تستخدم جهاز توجيه لتوزيع الإنترنت.


إذا كنت تستخدم وكيل، فسيتمكن WebRTC من تحديد عنوان IP الحقيقي الخاص بك لخادم VPN الوكيل أو عنوان IP الخاص بك إذا كنت تستخدم سلسلة وكيل VPN.


يعرف WebTC أيضا عنوان IP الحقيقي عند استخدام شبكة Tor.


أفضل حل هو تعطيل تقنية Webrtc إذا كنت لا تستخدمها.

كيفية إيقاف تشغيل Webrtc في المتصفحات

التنقل السريع في هذه الصفحة.

كيفية تعطيل Webrtc في موزيلا فايرفوكس

متصفح Mozilla Firefox هو متصفح واحد يتيح لك تعطيل تقنية Webrtc دون تثبيت إضافي إضافي.

الإعداد اليدوي

إذا لم تستخدم تقنية Webrtc، فيمكنك تعطيلها تماما. في الحالة عندما يكون من الضروري استخدام Webrtc بشكل دوري أكثر ملاءمة.

لتعطيل تقنية Webrtc في Mozilla Firefox، يجب إدخال النص التالي في شريط عنوان المستعرض واضغط على الزر ENTER.

حول: التكوين


انقر فوق زر خطر.


أداء ما يلي:

  1. في سلسلة البحث، أدخل النص واضغط ENTER.
  2. media.peerconnection.enabled.
  3. انقر بزر الماوس الأيمن فوق السلسلة وحدد التبديل. أو انقر نقرا مزدوجا على الخط.


بعد هذه الخطوات، سيتم تعطيل WebRTC.

الإعداد من خلال البرنامج المساعد التحكم Webrtc

إذا كنت تستخدم تقنية Webrtc، فستغرق إيقاف التشغيل وعلى الإعدادات وقتا طويلا. قم بتثبيت البرنامج المساعد الذي سيساعد في تشغيل وإيقاف تشغيل Webrtc في ساعة واحدة.

فتح الإضافات.


إختر:

  1. قسم البحث
  2. أدخل اسم المكون الإضافي إلى سلسلة البحث: سيطرة Webrtc
  3. انقر فوق زر التثبيت


كيفية تعطيل Webrtc في متصفح الأوبرا

لإيقاف تشغيل Webrtc في متصفح Opera، انتقل إلى معرض الملحقات.


اتبع الخطوات التالية:

  1. أدخل اسم المكون الإضافي في شريط البحث: سيطرة Webrtc
  2. انقر على البرنامج المساعد


انقر فوق إضافة إلى Opera.


تنشيط البرنامج المساعد. يجب أن يكون أيقونة المكونات باللون الأزرق لقفل Webrtc.

كيفية تعطيل webrtc في جوجل كروم

لتعطيل WebRTC في متصفح Google Chrome، انتقل إلى قسم التوسع.


قم بالتمرير لأسفل الصفحة لأسفل واضغط على المزيد من الملحقات.


اتبع الخطوات التالية:

  1. أدخل اسم البرنامج المساعد إلى سلسلة البحث: سيطرة Webrtc
  2. انقر فوق الزر "تثبيت".



تنشيط البرنامج المساعد. يجب أن يكون أيقونة المكونات باللون الأزرق لقفل Webrtc.

كيفية تعطيل Webrtc في متصفح ياندكس

لتعطيل Webrtc إلى متصفح Yandex، انتقل إلى قسم الوظائف الإضافية.


قم بالتمرير لأسفل الصفحة أسفل واضغط على دليل الملحق لمتصفح Yandex.


أداء الإجراءات:

  1. أدخل اسم البرنامج المساعد في شريط البحث: سيطرة Webrtc
  2. انقر على البرنامج المساعد لتثبيت.


انقر فوق إضافة إلى متصفح Yandex.


انقر فوق تثبيت الملحق.


تنشيط البرنامج المساعد. يجب أن يكون أيقونة المكونات باللون الأزرق لقفل Webrtc.

كيفية تعطيل Webrtc في متصفح SRWare Iron

Browser SRWare Cresond مصنوع على أساس Google Chrome.

تثبيت البرنامج المساعد Control WebRTC وفقا لتعليمات.

WebRTC هو API الذي يوفره متصفح ويسمح لك بتنظيم اتصال P2P ونقل البيانات مباشرة بين المتصفحات. على الإنترنت، يوجد عدد قليل من الكتيبات لكتابة دردشة الفيديو الخاصة بك باستخدام WebRTC. على سبيل المثال، إليك مقال عن حبري. ومع ذلك، فإن جميعهم يقتصرون على اتصال عملاء. في هذه المقالة، سأحاول معرفة كيفية تنظيم الاتصال والرسائل بين ثلاثة مستخدمين يستخدمون Webrtc.

واجهة RTCPEERCONNECTION هي اتصال نظير إلى نظير بين متصفحين. لتوصيل ثلاثة وأكثر من المستخدمين، سيتعين علينا تنظيم شبكة شبكة (شبكة يتم توصيل كل عقدة بجميع العقد الأخرى).
سوف نستخدم المخطط التالي:

  1. عند فتح صفحة، تحقق من وجود معرف الغرفة في الموقع.
  2. إذا لم يتم تحديد معرف الغرفة، فنحن نولد جديد
  3. نرسل خادم الإشارة "الرسالة حول ما نريد الانضمام إلى الغرفة المحددة
  4. يتطلب خادم الإشارات بقية العملاء في هذه الغرفة تنبيه مستخدم جديد
  5. العملاء الذين هم بالفعل إلى الغرفة إرسال عرض Newommer SDP
  6. مبتدئ الردود على العرض

0. Serverting Server.

كما تعلمون، على الأقل WebRTC ويوفر إمكانية اتصالات P2P بين المتصفحات، لا تزال تتطلب نقل إضافي لتبادل رسائل الخدمة. في هذا المثال، يقوم خادم WebSocket الذي كتب على Node.js باستخدام Socket.io يعمل مثل هذا النقل.

var socket_io \u003d تتطلب ("Socket.io")؛ module.exports \u003d (server) (مستخدمي var \u003d ()؛ var io \u003d socket_io (server)؛ io.ON ("اتصال"، وظيفة (مأخذ توصيل) (// desire مستخدم جديد انضم إلى غرفة المقبس.ون (" الغرفة "، وظيفة (رسالة) (var json \u003d json.parse (الرسالة)؛ // أضف مأخذ توصيل إلى قائمة مستخدمي المستخدمين \u003d المقبس؛ إذا (المقبس. الفصول! \u003d\u003d undefined) (// إذا كان المقبس بالفعل في بعض الغرفة، يخرج من ذلك المقبس.أقل (المقبس. الفصول)؛) // أدخل مقبس الغرفة المطلوب. الفصول \u003d JSON.room؛ Socket.join (المقبس. Froid)؛ Socket.user_id \u003d JSON.ID؛ / / أرسل إلى بقية العملاء في هذه الغرفة، رسالة حول الانضمام إلى Socket عضو جديد .broadcast.to (Socket.room). Emit ("جديد"، JSON.ID)؛))؛)؛ // رسالة متعلقة ب Webrtc ( عرض SDP، إجابة SDP أو مرشح الجليد) Socket.on ("Webrtc"، وظيفة (رسالة)؛ إذا (json.to! \u003d\u003d undefined && المستخدمون! \u003d\u003d undefined) (// إذا تم تحديد الرسالة بواسطة المستلم وهذا المستلم المعروف بالخادم، وإرسال رسالة فقط له ... Users.emit ("Webrtc"، رسالة)؛ ) آخر (// ... وإلا فإننا نعتبر الرسالة من خلال socketcasting socket.broadcast.to (Socket.room). Emit ("Webrtc"، رسالة)؛)؛)؛ // شخص ما مقبس غير متصل.ون ("قطع الاتصال"، وظيفة () (// عند فصل العميل، نحن نخطر حول هذا المقبس الأخرى .broadcast.to (Socket.room). Emit ("Get"، Socket.user_id)؛ حذف المستخدمين؛))؛ )) )

1. index.html.

شفرة المصدر في الصفحة نفسها بسيطة للغاية. لم أكن اهتماما بوعي للتخطيط وغيرها من الجميل، لأن هذه المقالة ليست حول هذا الموضوع. إذا كان شخص ما يريد، اجعله جميلا، ولن يعمل كثيرا من الصعوبة.

Webrtc Chat Demo.

متصلا. 0 الأقران.

2. main.js.

2.0. تلقي روابط إلى صفحات واجهات WebRTC
var chatlog \u003d document.getelementbyid ("Chatlog")؛ var message \u003d document.getelementbyid ("رسالة")؛ var connection_num \u003d document.getelementbyid ("connection_num")؛ var room_link \u003d document.getelementbyid ("room_link")؛

لا يزال يتعين علينا استخدام بادئات المتصفح للوصول إلى واجهات Webrtc.

var peerconnection \u003d window.mozrtcpeerconnection || window.webkitrtcpeerconnection. var sessiondescription \u003d window.mozrtcsessiondescription || window.rtcsessiondescription؛ var opecandidate \u003d window.mozrtcicecandidate || window.rtcicecandidate؛

2.1. معرف تعريف الغرفة

سنحتاج هنا إلى وظيفة لتوليد معرف فريد من الغرفة والمستخدم. سوف نستخدم UUID لهذه الأغراض.

وظيفة uuid () (ارجع math.floor () (math.random () * 0x10000) .Tostring (16)؛)؛ عودة S4 () + S4 () + "" - "+ S4 () +" - "+ S4 () + "-" + S4 () + "-" + S4 () + S4 () + S4 ()؛

الآن دعونا نحاول سحب معرف الغرفة من العنوان. إذا لم يتم تحديد هذا، فسنقوم بإنشاء واحدة جديدة. دعنا نضع الرابط إلى الغرفة الحالية إلى الصفحة، ولم يكن بإنشاء معرف المستخدم الحالي.

var room \u003d location.hash.substr (1)؛ إذا (! غرفة) (الغرفة \u003d Uuid ()؛) Room_link.innerhtml \u003d "رابط إلى الغرفة"؛ فارني \u003d UUID ()؛

2.2. Websocket.

على الفور عند فتح الصفحة، ستقوم بالاتصال بخادم الإشارة لدينا "Y، أرسل طلبا لإدخال الغرفة وتحديد معالجات الرسائل.

// نحن نحدد ذلك عند إغلاق الرسالة التي تحتاجها لإرسال الخادم إلى FAR Socket \u003d io.Connect ("" "" مزامنة قطع الاتصال على تفريغ ": True))؛ Socket.on ("WebTC"، Socketreced)؛ Socket.on ("جديد"، SocketNewPeer)؛ // أرسل طلبا فورا إلى إدخال غرفة المقبس. emit room ("room"، json.stringify ((ID: ME، غرفة: غرفة)))؛ // الوظيفة الإضافية لإرسال رسائل العناوين المرتبطة بدالة Webrtc SendViasocket (النوع، الرسالة، إلى) (Socket.emit ("Webrtc"، JSON.Ststringify ((ID: أنا، إلى: TO، النوع: النوع، البيانات: رسالة) ))؛)؛

2.3. الإعدادات PeerConnection.

يقدم معظم مقدمي الخدمات اتصال بالإنترنت عبر NAT. لهذا السبب، يصبح الاتصال المباشر غير قضية تافهة. عند إنشاء اتصال، نحتاج إلى تحديد قائمة الصاعقة وتحويل الخوادم التي سيحاول المتصفح استخدامها لتجاوز NAT. نحن نحدد أيضا زوج من خيارات إضافية للاتصال.

Var Server \u003d (itseservers: [URL: "الصاعقة: 23.21.150.121")، (URL: "الصاعقة: Soor.l.l.l.google.com: 19302")، (URL: "Turn: numb.viagenie.ca"، بيانات الاعتماد : "كلمة المرور الخاصة بك تستمر هنا"، اسم المستخدم: " [البريد الإلكتروني المحمي]")])؛ خيارات var \u003d (اختياري: [(dtlssrtpkyagreent: true)، // المطلوبة للاتصال بين Chrome و Firefox (rtpdatachawnels: True) // المطلوبة في Firefox لاستخدام Datachawnels API])

2.4. توصيل مستخدم جديد

عند إضافة عيد جديد إلى الغرفة، يرسلنا الخادم رسالة. الجديدوبعد وفقا لمعالجات الرسائل المحددة أعلاه، ستدعو الدالة. socketnewpeer..

بير بيرز \u003d ()؛ وظيفة socketnewpeer (البيانات)؛ // قم بإنشاء اتصال جديد Var PC \u003d PeerConnection جديد (الخادم والخيارات)؛ // تهيئة InitConnection (الكمبيوتر والبيانات "(عرض البيانات")؛ // الحفاظ على PIR في قائمة Persers.connection \u003d كمبيوتر؛ // إنشاء datachawnel له قناة var \u003d pc.createdatachachannel ("mychannel"، ("mychannel"، ()]؛ القناة.اونر \u003d البيانات؛ persers.channel \u003d القناة؛ // تثبيت الحدث معالجات القناة bindevents (القناة)؛ // إنشاء SDP تقدم PC.CreeCeOFfer (وظيفة (عرض))؛) الدالة initconnection (الكمبيوتر الشخصي، معرف، SDPTYPE) (PC.OonicEcandidate \u003d وظيفة (الحدث) (إذا تم اكتشاف الجليد الجديد للمرشح على إضافته إلى القائمة لمزيد من إرسال الأقران. candidateCache.push (حدث. الحدث)؛) آخر (// عندما اكتمال الكشف عن المرشح، سيتم استدعاء المعالج مرة أخرى، ولكن دون مرشح // في هذه الحالة نرسل عرض خوف أول عرض تنظيم SDP أو إجابة SDP (اعتمادا على المعلمة الوظيفة) ... SendViasocket (SDPType، PC.Localescription، ID)؛ // ... ومن ثم جميع المرشحين الجليد في السابق ل (var i \u003d 0؛ أنا< peers.candidateCache.length; i++) { sendViaSocket("candidate", peers.candidateCache[i], id); } } } pc.oniceconnectionstatechange = function (event) { if (pc.iceConnectionState == "disconnected") { connection_num.innerText = parseInt(connection_num.innerText) - 1; delete peers; } } } function bindEvents (channel) { channel.onopen = function () { connection_num.innerText = parseInt(connection_num.innerText) + 1; }; channel.onmessage = function (e) { chatlog.innerHTML += "

الأقرن يقول: "+ E.Data +"
"; }; }

2.5. عرض SDP، إجابة SDP، مرشح الجليد

عند استلام إحدى هذه الرسائل، اتصل بمعالج الرسالة المقابلة.

وظيفة socketrecied (البيانات) (البيانات) (البيانات)؛ التبديل (json.type) (المرشح) (json.id، json.data)؛ استراحة؛ حالة "عرض": remoteofferreceived (json. id، json.data)؛ break؛ حالة " الإجابة ": remoteanswerreceed (json.id، json.data)؛ استراحة؛))

2.5.0 عرض SDP.
وظيفة remoteofferreceed (معرف، البيانات) (createconnection (id)؛ var pc \u003d pers.connection؛ pc.setremoteedesription (البيانات)؛ pc.createanswer (وظيفة (الإجابة)؛)؛)؛ دالة createConnection (المعرف) (إذا (أقرانه \u003d\u003d\u003d undefined) (أقرانه \u003d (candidatecache :)؛ var pc \u003d peerconnection جديد (الخادم، الخيارات)؛ photconnection (pc، id، "الإجابة")؛ persers.connection \u003d pc.ondatachannel \u003d وظيفة (ه ) (persers.channel \u003d e.channel؛ persers.channel.owner \u003d ID؛ bindevents (perse.channel)؛))
2.5.1 إجابة SDP.
وظيفة RemoteanswerreceReceReceReceiST (المعرف والبيانات) (var pc \u003d pers.connection؛ pc.setremoteedesription (جديد الدعابة (البيانات) (البيانات))؛)
2.5.2 مرشح الجليد.
وظيفة RemoteCandidateated (المعرف والبيانات) (Createconnection (ID)؛ Var PC \u003d PENERS.CONNNECTION. PC.ADDICECENATIONDIONDIONDIOND (ICECANDIDES NEW ICENATIOND (بيانات)؛)
2.6. ارسال رسالة

الضغط على الزر إرسال. وتسمى الوظيفة sendmessage.وبعد كل ما تقوم به يتم تمريره على قائمة الأقران، ويحاول إرسال الرسالة المحددة للجميع.

الغرض من هذه المقالة هو في عينة مظاهرة من دردشة الفيديو الأقران (دردشة الفيديو P2P) للتعرف على هيكلها ومبدأ العمل. لهذا الغرض، نستخدم عينة العرض التوضيحي متعدد المستخدمين من دردشة فيديو Webrtc.IO-Demo. يمكن تنزيله حسب المرجع: https://github.com/webrtc/webrtc.io-demo/tree/master/site.

تجدر الإشارة إلى أن Github هو موقع ويب أو خدمة ويب للتطوير المشترك لمشاريع الويب. على مطوروها يمكن أن تضع رموز تطوراتها، مناقشتها والتواصل مع بعضها البعض. بالإضافة إلى ذلك، تضع بعض شركات تكنولوجيا المعلومات الرئيسية مستودعاتها الرسمية في هذا الموقع. الخدمة مجانية للمشاريع المصدر المفتوحة. GitHub هو مستودع لمكتبات المكتبات، التعليمات البرمجية المصدر المجانية.

لذلك، تم تنزيلها من GITHUB عينة مظاهرة من دردشة فيديو نظير، لنشر على القرص بجهاز كمبيوتر شخصي في الدليل الذي تم إنشاؤه لتطبيقنا "Webrtc_demo".


تين. واحد

على النحو التالي من الهيكل (الشكل 1)، تتكون دردشة الفيديو الأقران من Script.js Client and Server.js Server.js المنفذة في لغة برمجة JavaScript. البرنامج النصي (Library) Webrtc.IO.js (العميل) - يوفر اتصالات في الوقت الفعلي بين المتصفحات من النظير إلى الاسم: "عميل العميل"، و Webrtc.i.js (العميل) و Webrtc.i.js (Server)، باستخدام بروتوكول WebSocket، قم بتوفير اتصال مزدوج بين المتصفح وخادم الويب بتصنيع بنية خادم العميل.

يدخل البرنامج النصي Webrtc.IO.js (Server) المكتبة Webrtc.io ويقع في الدليل Node_Modules \\ Webrtc.io \\ Lib. تم تطبيق واجهة Advents.html دردشة الفيديو على HTML5 و CSS3. يمكن عرض محتويات ملفات تطبيق Webrtc_demo أحد محرريات HTML، مثل "المفكرة ++".

سيتم فحص مبدأ دردشة الفيديو في نظام ملفات الكمبيوتر الشخصي. لبدء تشغيل الخادم (Server.js) على جهاز الكمبيوتر، يجب عليك تعيين وقت التشغيل Node.js. Node.js يسمح لك بتشغيل JavaScript خارج المتصفح. يمكنك تنزيل Node.js حسب المرجع: http://nodejs.org/ (الإصدار v0.10.13 على 07/15/13). في الصفحة الرئيسية لموقع Node.org Website، انقر فوق زر التنزيل والانتقال إلى http://nodejs.org/download/. بالنسبة لمستخدمي Windows، تقوم أولا بتنزيل Win.Installer (.msi)، ثم قم بتشغيل Win.Installer (.msi) على الكمبيوتر، وتثبيت Nodejs و "NPM Package Manager" في دليل ملفات البرامج.




تين. 2.

وبالتالي، تتكون Node.js من بيئة تطوير وإعدام رمز JavaScript، وكذلك من مجموعة من الوحدات الداخلية التي يمكن تثبيتها باستخدام مدير أو مدير حزمة NPM.

لتثبيت الوحدات النمطية، من الضروري تنفيذ الأمر في سطر الأوامر من دليل التطبيق (على سبيل المثال، "Webtc_demo): nPM تثبيت الاسم_Module.وبعد أثناء عملية التثبيت، ينشئ وحدات Manager NPM مجلد Node_Modules في الدليل الذي تم فيه إجراء التثبيت منه. في عملية التشغيل، يقوم Nodejs تلقائيا بتوصيل الوحدات النمطية من دليل Node_Modules.

لذلك، بعد تثبيت Node.js، نفتح سطر الأوامر وتحديث الوحدة النمطية الصريحة في دليل مجلد Node_Modules Webrtc_demo باستخدام مدير حزمة NPM:

C: \\ WebRTC_DEMO\u003e NPM Installation Express

وحدة Express Module هي إطار عمل على الويب أو منصة ويب لتطوير التطبيقات. للحصول على إمكانية الوصول العالمي إلى Express، يمكنك تعيينه بهذه الطريقة: nPM Install -G Express.

ثم سأقوم بتحديث وحدة Webrtc.IO:

C: \\ WebTC_DEMO\u003e NPM تثبيت Webrtc.io

ثم في موجه الأوامر، قم بتشغيل الخادم: Server.js:

C: \\ WebTC_DEMO\u003e node server.js


تين. 3.

كل شيء، يعمل الخادم بنجاح (الشكل 3). الآن، باستخدام مستعرض ويب، يمكنك الاتصال بالخادم عبر عنوان IP وتنزيل صفحة ويب Index.html التي ستسترجعها مستعرض الويب رمز البرنامج النصي للعميل - Script.js ورمز Webrtc.IO. JS النصي رمز، وأداء لهم. لتشغيل دردشة الفيديو النظير (لتثبيت اتصال بين المتصفحين)، فمن الضروري من متصفحين يدعمون WebRTC، اتصل بعنوان IP إلى خادم إشارة يعمل على Node.js.js.

نتيجة لذلك، تفتح واجهة جزء العميل من تطبيق الاتصالات (دردشة الفيديو) مع طلب لحل الوصول إلى الغرفة والميكروفون (الشكل 4).



تين. أربعة

بعد النقر فوق الزر "السماح"، يتم توصيل الكاميرا والميكروفون في اتصال الوسائط المتعددة. بالإضافة إلى ذلك، عبر واجهة دردشة الفيديو يمكن توصيلها بالبيانات النصية (الشكل 5).



تين. خمسة

تجدر الإشارة إلى ذلك. الخادم هو المنبه، وهو مصمم بشكل أساسي لتعيين الاتصال بين متصفحات المستخدمين. بالنسبة إلى البرنامج النصي Server Server.js Server، يوفر إنذار Webrtc، يستخدم Node.js.js.

معظم المواد في Webrtc. ركز على المستوى المطبق من رمز الكتابة ولا يسهم في فهم التكنولوجيا. دعونا نحاول تعميق ومعرفة كيفية حدوث الاتصال، ما هو مقبض الجلسة والمرشحين لما تحتاجه الصاعقة. و منعطف أو دور الخادم.

Webrtc.

مقدمة

WebRTC - التكنولوجيا الموجهة نحو المتصفح التي تتيح لك توصيل عملاء لنقل بيانات الفيديو. الميزات الرئيسية - الدعم الداخلي للمتصفحات (لا أحتاج إلى تقنيات النوع الثالث برنامج أدوب فلاش.) والقدرة على توصيل العملاء دون استخدام خوادم إضافية - اتصال واحد الى واحد (إضافه على، p2P.).

إنشاء اتصال p2P. - مهمة صعبة إلى حد ما، لأن أجهزة الكمبيوتر لا تملك دائما العامة IP. العناوين، أي عناوين الإنترنت. بسبب كمية صغيرة IPv4. تم تطوير عناوين (ولأغراض أمنية) آلية NAT.مما يسمح لك بإنشاء شبكات خاصة، على سبيل المثال، للاستخدام المنزلي. العديد من أجهزة التوجيه المنزلية مدعومة الآن. NAT. وبفضل هذا، تتمتع جميع الأجهزة المنزلية بالوصول إلى الإنترنت، على الرغم من أن مقدمي الإنترنت عادة ما يوفرون واحدة IP. عنوان. عام IP. العناوين فريدة من نوعها على الإنترنت، والملاحظات الخاصة. لذلك الاتصال p2P. - صعبة.

من أجل فهمها بشكل أفضل، فكر في ثلاث حالات: كلتا العقدتين على نفس الشبكة (الصورة 1)كلا العقدتين في شبكات مختلفة (واحدة خاصة، أخرى في الأماكن العامة) (الشكل 2) وكلا العقدتين في شبكات خاصة مختلفة مع نفسه IP. عناوين (الشكل 3).

الشكل 1: كلتا العقدتين على نفس الشبكة

الشكل 2: العقد في شبكات مختلفة (واحدة داخل القطاع الخاص، وغيرها في الأماكن العامة)

الشكل 3: العقد في شبكات خاصة مختلفة، ولكن مع عناوين متساوية عدديا

في الأرقام فوق الحرف الأول في الترميز الرمزي المزدوج يعني نوع الوحدة (P \u003d نظير.، ص \u003d. جهاز التوجيه.). في الرسم الأول، الوضع مناسب: يتم تحديد العقد في شبكتهم تماما عن طريق الشبكة IP. العناوين وبالتالي يمكن توصيلها مباشرة مع بعضها البعض. في الرسم الثاني لدينا شبكتان مختلفان، والتي لها تركم مماثلة من العقد. فيما يلي أجهزة التوجيه (أجهزة التوجيه)، الذين لديهم واجهات الشبكة - داخل شبكتهم وخارج شبكتهم. لذلك لديهم اثنين IP. عناوين. العقد التقليدية لديها واجهة واحدة فقط يمكن من خلالها التواصل فقط في شبكتهم فقط. إذا نقلوا البيانات إلى شخص خارج شبكتهم، فحسب NAT. داخل جهاز التوجيه (راوتر) وبالتالي مرئية للآخرين تحت IP. عنوان جهاز التوجيه هو خارجي IP. عنوان. لذلك العقدة p1. هناك الداخلية IP. = 192.168.0.200 و خارجي IP. = 10.50.200.5 علاوة على ذلك، فإن العنوان الأخير سيكون خارجي أيضا لجميع العقد الأخرى على شبكتها. موقف مماثل لعقدة p2.وبعد لذلك، فإن اتصالهم مستحيل إذا استخدموا فقط الداخلية (خاصة بهم) IP. عناوين. يمكنك استخدام العناوين الخارجية، أي عناوين التوجيه، ولكن، لأن جميع العقد في شبكة خاصة واحدة، فإن نفس العنوان الخارجي صعب للغاية. تم حل هذه المشكلة باستخدام الآلية NAT.

ماذا سيحدث إذا ما زلنا نقرر توصيل العقد من خلال عناوينهم الداخلية؟ لن تتجاوز البيانات الشبكة. لتعزيز التأثير، يمكنك تخيل الوضع الذي يصور في الشكل الأخير - في كلتا العقدتين يتزامن عناوين داخلية. إذا استخدموها للاتصال، فسوف تتواصل كل عقدة بنفسه.

Webrtc. تنسق بنجاح مثل هذه المشاكل باستخدام البروتوكول جليدوهذا صحيح، يتطلب استخدام خوادم إضافية ( الصاعقة., منعطف أو دور). حول كل هذا أدناه.

مرحلتين Webrtc.

لتوصيل العقدتين من خلال البروتوكول Webrtc. (أو ببساطة RTC.إذا كان اثنان ملزم ايفون."أ) من الضروري إجراء بعض الإجراءات الأولية لإنشاء اتصال. هذه هي المرحلة الأولى - وضع الاتصال. المرحلة الثانية هي نقل بيانات الفيديو.

فور يستحق القول أن التكنولوجيا على الأقل Webrtc. يستخدم عملها العديد من الطرق المختلفة للتواصل ( TCP. و UDP.) ولديه تبديل مرن بينهما، هذه التكنولوجيا ليس لديه بروتوكول لإرسال بيانات الاتصالوبعد ليس من المستغرب، بعد كل شيء، توصيل العقدتين p2P. ليس سهلا. لذلك، من الضروري الحصول على بعض إضافي طريقة نقل البيانات، بأي حال من الأحوال المرتبطة Webrtc.وبعد يمكن أن يكون نقل المقبس، بروتوكول HTTP.قد يكون حتى بروتوكول SMTP. أو البريد الروسي. آلية النقل هذه خبرات يسمى البيانات الإشارةوبعد تحتاج إلى تمرير عدم الكثير من المعلومات. يتم إرسال جميع البيانات كنص وتنقسم إلى نوعين - SDP. و مرشح الجليد.وبعد يستخدم النوع الأول لإنشاء مركب منطقي، والثاني للجسدي. بالتفصيل عن كل هذا في وقت لاحق، ولكن من المهم فقط أن نتذكر ذلك Webrtc. وسوف تعطينا بعض المعلومات التي ستحتاج إلى أن تنقل إلى عقدة أخرى. بمجرد أن نقدم كل المعلومات اللازمة، ستتمكن العقد من الاتصال ولم تعد بحاجة إلى مساعدتنا. وبالتالي، فإن آلية الإشارة التي يجب علينا تنفيذها بشكل منفصل، سوف يستخدم فقط عند الاتصال، وعند عدم استخدام بيانات الفيديو لن يتم استخدامها.

لذلك، النظر في المرحلة الأولى - مرحلة الاتصال من الاتصال. يتكون من العديد من العناصر. فكر في هذه المرحلة أولا للحصول على عقدة تبدأ في الاتصال، ثم من أجل الانتظار.

  • البادئ (المتصل - المتصل):
    1. عرض بدء نقل بيانات الفيديو (CreateOfffer)
    2. الحصول على الخاص بك SDP. SDP.)
    3. الحصول على لك مرشح الجليد. مرشح الجليد.)
  • مكالمة الانتظار ( كاللي.):
    1. الحصول على دفق الوسائط المحلية (الخاصة بك) وتثبيته للإرسال (GetUsermediaStream)
    2. الحصول على جملة لبدء بيانات نقل الفيديو وإنشاء إجابة (createanwer)
    3. الحصول على الخاص بك SDP. الكائن والنقل من خلال آلية الإشارة ( SDP.)
    4. الحصول على لك مرشح الجليد. الأشياء وتمريرها من خلال آلية الإشارة ( مرشح الجليد.)
    5. الحصول على دفق الوسائط البعيد (الأجنبي) وعرضه على الشاشة (onadstream)

الفرق فقط في الفقرة الثانية.

على الرغم من الارتباك على ما يبدو من الخطوات هنا، هناك بالفعل ثلاثة: إرسال دفق الوسائط (جملة 1)، قم بتعيين المعلمات المركبة (PP.2-4)، والحصول على دفق شخص آخر (ص.5). الأكثر تعقيدا هو الخطوة الثانية، لأنه يتكون من جزأين: المؤسسة جسدي - بدني و منطقية روابط. يشير الأول طريقمن خلال أي حزم يجب أن تذهب للحصول على عقدة شبكة واحدة إلى آخر. يشير الثاني معلمات الفيديو / الصوت - ما يجب استخدام الجودة لاستخدام برامج الترميز.

مرحلة عقليا createoffer. أو createans. يجب أن تكون متصلة بمراحل النقل SDP. و مرشح الجليد. شاء.

الخلاصات الرئيسية

تدفقات وسائل الإعلام (MediaStream)

الجوهر الرئيسي هو دفق الوسائط، أي تدفق البيانات والبيانات الصوتية والصوت والصوت. تدفقات الوسائط هي نوعان - محلي وحذف. تلقي محلي البيانات من أجهزة الإدخال (الكاميرا والميكروفون) والبعيدة عبر الشبكة. وبالتالي، فإن كل عقدة لديها دفق محلي عن بعد. في Webrtc. للتدفقات هناك واجهة mediastream وأيضا هناك هيئة فرعية localmediastream خاصة للتدفق المحلي. في جافا سكريبت. يمكنك مواجهة فقط أولا، وإذا كنت تستخدم libjingle.ثم يمكنك تواجهة الثانية.

في Webrtc. هناك تسلسل هرمي مربك إلى حد ما داخل الدفق. قد يتكون كل مؤشر ترابط من العديد من المسارات الإعلامية ( mediaTrack.)، والتي بدورها يمكن أن تتكون من العديد من القنوات الإعلامية ( mediachannel.). وتدفقات وسائل الإعلام نفسها قد تكون أيضا إلى حد ما.

النظر في كل شيء بالترتيب. لهذا سنحتفظ ببعض المثال في الاعتبار. لنفترض أننا نريد أن ننقل الفيديو ليس فقط الفيديو لأنفسنا، ولكن أيضا الفيديو الخاص بجدولنا، والتي قطعة من الورق الكذب الذي سنكتب عليه شيئا ما. سنحتاج إلى اثنين من أشرطة الفيديو (نحن + طاولة) وصوت واحد (نحن). من الواضح أننا يجب أن ينقسمنا الجدول إلى تيارات مختلفة، لأن هذه البيانات ربما تعتمد على بعضها البعض. لذلك سيكون لدينا اثنين mediastream'A هو واحد بالنسبة لنا وواحد للجدول. سيحتوي الأول على بيانات الفيديو والصوت، والثاني هو الفيديو فقط (الشكل 4).

الشكل 4: اثنين من تدفقات وسائل الإعلام المختلفة. واحد لنا واحد لجدولنا

من الواضح على الفور أن تدفق الوسائط على الأقل يجب أن تتضمن القدرة على احتواء البيانات من أنواع مختلفة - الفيديو والصوت. يؤخذ ذلك في الاعتبار في التكنولوجيا وبالتالي يتم تنفيذ كل نوع من البيانات من خلال مسار الوسائط mediaTrack.وبعد تتبع وسائل الإعلام لديه خاصية خاصة. طيب القلب.الذي يحدد ذلك أمامنا - فيديو أو صوت (الشكل 5)

الشكل 5: تتكون تدفقات الوسائط من مسارات إعلامية

كيف سيحدث كل شيء في البرنامج؟ سنقوم بإنشاء تدفقتي إعلامية. ثم قم بإنشاء مسار فيديو ومسار صوت واحد. نحصل على كاميرات وميكروفون. نحدد كل مسار يستخدم الجهاز. أضف مقطع فيديو ومسار صوت إلى أول دفق الوسائط ومطار الفيديو من كاميرا أخرى في دفق الوسائط الثاني.

ولكن كيف نميز تيارات الوسائط في الطرف الآخر من الاتصال؟ لهذا، كل تدفق وسائل الإعلام لديه خاصية. ملصق - علامة التدفق، اسمها (الشكل 6). نفس العقار لديه مسار وسائل الإعلام. على الرغم من أن المقررة الأولى يبدو أن الفيديو من الصوت يمكن تمييزها بطرق أخرى.

الشكل 6: يتم تحديد تدفقات الوسائط والمسارات حسب العلامات

لذلك، وإذا تم تحديد مسارات الوسائط بعد التسمية، فلماذا يجب أن نستخدم اثنين من تدفقات إعلامية لمثالينا، بدلا من واحد؟ بعد كل شيء، يمكنك نقل دفق واحد وسائط، وتستخدم المسارات مسارات مختلفة. وصلنا إلى الممتلكات المهمة لدفقات وسائل الإعلام - هم تزامن مسارات وسائل الإعلام. لا تتم مزامنة تدفقات الوسائط المختلفة مع بعضها البعض، ولكن ضمن كل الوسائط دفق جميع المسارات اللعب في نفس الوقت.

وبالتالي، إذا كنا نريد كلماتنا، فسيتم استنساخ مشاعرنا على الوجه وأطلقت ورقاتنا في نفس الوقت، فهو يستحق استخدام دفق وسائط واحد. إذا لم يكن هذا أمرا مهما للغاية، فمن المرجح أن تستخدم تدفقات مختلفة - ستكون الصورة أكثر سلاسة.

إذا كان يجب قطع اتصال بعض المسار أثناء الإرسال، فيمكنك استخدام العقار. ممكن. مسارات وسائل الإعلام.

في النهاية، يستحق التفكير في صوت ستيريو. كما تعلمون، صوت ستيريو هو أصواتان مختلفان. ومن الضروري نقلها بشكل منفصل. للقيام بذلك، يتم استخدام القنوات. mediachannel.وبعد يمكن أن يحتوي مسار الصوت الوسائط على العديد من القنوات (على سبيل المثال، 6، إذا كنت بحاجة إلى صوت 5 + 1). داخل قنوات تتبع الوسائط، بالطبع أيضا متزامنةوبعد بالنسبة للفيديو، عادة ما يتم استخدام قناة واحدة فقط، ولكن عدة، على سبيل المثال، يتم استخدام الإعلانات.

تلخيص: نحن نستخدم دفق الوسائط لنقل بيانات الفيديو والصوت. داخل كل دفق وسائط، تتم مزامنة البيانات. يمكننا استخدام العديد من تدفقات الوسائط إذا لم نحتاج إلى مزامنة. داخل كل دفق الوسائط هناك مسار وسائل الإعلام من نوعين - للفيديو والصوت. عادة ما لا تزيد المسارات أكثر من اثنين، ولكن ربما أكثر إذا كنت بحاجة إلى نقل العديد من مقاطع الفيديو المختلفة (محاور وطاولاتها). قد يتكون كل مسار من العديد من القنوات، والتي تستخدم عادة فقط لصوت الاستريو.

في أبسط وضع دردشة الفيديو، سيكون لدينا دفق وسائط محلي واحد، مما يتكون من مسارين - مسارات فيديو ومقطوعات صوتية، كل منها ستتألف من قناة رئيسية واحدة. مسار الفيديو مسؤولا عن الكاميرا، وتتبع المسار الصوتي لكل ميكروفون، ومدفق الوسائط هو حاوية لهم كلاهما.

واصف الجلسة (SDP)

سيكون لدى أجهزة الكمبيوتر المختلفة دائما كاميرات وميكروفونات وبطاقات الفيديو وغيرها من المعدات. هناك العديد من المعلمات التي لديهم بها. كل هذا يجب تنسيقه لنقل بيانات الوسائط بين عقدين شبكة. Webrtc. هل يقوم تلقائيا بإنشاء واصف جلسة كائن خاص SDP.وبعد اجتياز هذا الكائن إلى عقدة أخرى، ويمكنك نقل بيانات الوسائط. فقط مع الاتصال مع عقدة أخرى ليست بعد.

للقيام بذلك، استخدم أي آلية للإشارات. SDP. يمكنك نقل ما لا يقل عن المقابس، على الأقل شخص (إبلاغه بعقدة أخرى عبر الهاتف)، حتى عن طريق بريد روسيا. كل شيء بسيط للغاية - سيتم منحك جاهزا SDP. ويجب أن يتم إرسالها. وعندما تلقي على الجانب الآخر - لنقل إلى القسم Webrtc.وبعد يتم تخزين مقبض الجلسة كنص ويمكن تغييره في تطبيقاته، ولكن كقاعدة عامة، فليس من الضروري. كمثال، عند الاتصال، يطلب من سطح المكتب أحيانا أن يضطر في تحديد برنامج ترميز الصوت المطلوب.

عادة، عند تعيين الاتصال، يجب عليك تحديد بعض العنوان، على سبيل المثال عنوان URLوبعد ليست هناك حاجة لهذا، نظرا لآلية الإشارات التي ترسلها بنفسك البيانات الوجهة. للإشارة Webrtc.ما نريد تثبيته p2P. الاتصال الذي تريد استدعاء وظيفة CreateOffer. بعد استدعاء هذه الميزة والتعليمات الخاصة بها الخاصة أتصل مرة أخرىسيتم إنشاء SDP. كائن ونقل إلى نفسه أتصل مرة أخرىوبعد كل ما هو مطلوب منك هو نقل هذا الكائن عبر الشبكة إلى عقدة أخرى (محاور). بعد ذلك، في الطرف الآخر، ستأتي البيانات من خلال آلية الإشارة، أي هذا SDP. شيء. مقبض الجلسة هذه لهذه العقدة هو شخص آخر وبالتالي يحمل معلومات مفيدة. الحصول على هذا الكائن هو إشارة إلى بداية الاتصال. لذلك، يجب أن توافق على هذا واتصل بوظيفة CreateanWer. إنها تناظرية كاملة من creadoffer. مرة أخرى في الخاص بك أتصل مرة أخرى سيتم تمرير واصف الدورة المحلية وسيكون من الضروري نقل آلية الإشارة إلى الوراء.

تجدر الإشارة إلى أنه من الممكن استدعاء دالة Createanwer فقط بعد تلقي شخص آخر SDP. موضوع. لماذا ا؟ لأن المحلية SDP. يجب أن يعتمد الكائن الذي سيتم إنشاؤه عند استدعاء CreateanWer على جهاز التحكم عن بعد SDP. شيء. فقط في هذه الحالة، من الممكن تنسيق إعدادات الفيديو الخاصة بك مع إعدادات المحاور. كما أنه لا يستحق استدعاء CreateanSwer و CreateOffer قبل استلام دفق الوسائط المحلية - فلن يكون لديهم ما يكتبون فيه SDP. شيء .

كما ب. Webrtc. من الممكن تحرير SDP. كائن، بعد تلقي واصف محلي، يجب تثبيته. قد يبدو غريبا بعض الشيء أنك تحتاج إلى نقل Webrtc. حقيقة أنها تعطينا نفسها، ولكن البروتوكول. عندما تتلقى واصفا عن بعد، تحتاج أيضا إلى تثبيت. لذلك، يجب عليك تثبيت واصفات اثنين على عقدة واحدة - خاصة بك وشخص آخر (أي المحلية والبعيدة).

بعد هذا مصافحة العقد تعرف عن رغبات بعضها البعض. على سبيل المثال، إذا كانت العقدة 1 يدعم الترميز أ. و ب.والعقدة 2 يدعم الترميز ب. و جيم، نظرا لأن كل عقدة تعرف خاصة بها واصفات شخص آخر، ستختار كلا العقدتين ترميزا ب. (الشكل 7). يتم الآن تثبيت منطق الاتصال الآن، ويمكن إرسال تدفقات الوسائط، ولكن هناك مشكلة أخرى - لا تزال العقد مرتبطة بآلية إشارة.


الشكل 7: تنسيق الترميز

المرشحون (مرشح الجليد)

تقنية Webrtc. يحاول الخلط بيننا منهجية جديدة. عند تثبيت الاتصال، لا يتم تحديد عنوان تلك العقدة مع الاتصال به. تثبيت أولا منطقية اتصال وليس جسدي - بدنيعلى الرغم من أنه كان دائما على العكس من ذلك. لكن لن يبدو غريبا إذا كنت لا تنسى أننا نستخدم آلية إشارة الطرف الثالث.

لذلك، يتم تثبيت الاتصال بالفعل (اتصال منطقي)، ولكن لا يوجد أي مسار يمكن أن ينقل العقد الشبكة البيانات. ليس من السهل جدا هنا، لكن دعنا نبدأ بسيطة. دع العقد في شبكة واحدة خاصة. كما نعلم بالفعل، يمكنهم الاتصال بسهولة مع بعضهم البعض في الداخل IP. عناوين (أو ربما بالنسبة للبعض الآخر، إن لم يكن المستخدمة TCP / IP.).

من خلال بعض أتصل مرة أخرىWebrtc. أخبرنا مرشح الجليد. شاء. كما أنها تأتي في شكل نصي وأيضا، كما هو الحال مع واصفات الجلسة، يحتاجون إلى الأمام ببساطة من خلال آلية الإشارة. إذا كانت واصف الدورة تضمن معلومات حول منشآتنا على مستوى الغرفة والميكروفون، فإن المرشحين يحتويون على معلومات حول موقعنا على الشبكة. نقلها إلى عقدة أخرى، وسوف يكون قادرا على الاتصال بدنيا معنا، وبما أن لديه بالفعل واصف الجلسة، فمن المنطقي منطقيا الاتصال والبيانات "تدفق". إذا كان لا ينسى أن يرسلنا وكائنه للمرشح، أي معلومات حول المكان الذي يوجد فيه في الشبكة نفسها، ثم يمكننا الاتصال به. ملاحظة هنا اختلاف آخر من تفاعل خادم العميل الكلاسيكي. يحدث التواصل مع خادم HTTP وفقا لنظام استجابة الاستعلام، يقوم العميل بإرسال البيانات إلى الخادم، ويعالجها وترسلها العنوان المحدد في حزمة الطلبوبعد في Webrtc. بحاجة إلى معرفة عناوين اثنين وتوصيلها من كلا الجانبين.

الفرق من واصفات الجلسة هو أن المرشحين النائي فقط مطلوبة. التحرير هنا محظور ولا يمكن تحقيق أي فائدة. في بعض التطبيقات Webrtc. يجب تثبيت المرشحين فقط بعد تثبيت واصفات الجلسة.

ولماذا كان واصف الجلسة وحده، وربما قد يكون هناك الكثير من المرشحين؟ لأن الموقع على الشبكة يمكن تحديده ليس فقط بواسطة Inner IP. العنوان، ولكن أيضا العنوان الخارجي للموجه، وليس بالضرورة واحدة، وكذلك عناوين منعطف أو دور الخوادم. سيتم تكريس بقية الفقرة للنظر التفصيلي للمرشحين وكيفية توصيل العقد من شبكات خاصة مختلفة.

لذلك، هناك عقدان على نفس الشبكة (الشكل 8). كيفية التعرف عليها؟ عبر IP. عناوين. لا توجد طريقة أخرى. صحيح، لا يزال بإمكانك استخدام وسائل النقل المختلفة ( TCP. و UDP.) ومباخ مختلفة. هذه هي المعلومات الواردة في كائن المرشح - IP., ميناء., المواصلات. وبعض الآخر. اسمحوا، على سبيل المثال، المستخدمة UDP. نقل I. 531 ميناء.

الشكل 8: عقدتان على نفس الشبكة.

ثم، إذا كنا في العقدة p1.T. Webrtc. تعطينا مثل هذا الهدف من المرشح - وبعد لا يوجد تنسيق دقيق هنا، ولكن فقط مخطط. إذا كنا في العقدة p2.، ثم المرشح هو وبعد من خلال آلية الإنذار p1. الحصول على مرشح p2. (هذا هو موقع العقدة p2.، أي له IP. و ميناء.). ثم p1. يمكن الاتصال S. p2. مباشرة. الأصح، p1. سوف ترسل البيانات إلى العنوان 10.50.150.3:531 على أمل أن يصلوا p2.وبعد بغض النظر عما إذا كان هذا العنوان ينتمي إلى العقدة p2. أو بعض الوسيط. من المهم فقط أنه سيتم إرسال بيانات العنوان هذه ويمكن تحقيقها p2..

في حين أن العقد على نفس الشبكة - كل شيء بسيط وسهل - كل عقدة لديها كائن واحد فقط للمرشح (يعني دائما أن تلقائيا، وهذا هو، موقعه على الشبكة). لكن المرشحين سيكونون أكثر بكثير عندما تكون العقدة في مختلف الشبكات.

دعونا ننتقل إلى مناسبة أكثر تعقيدا. سوف تكون عقدة واحدة وراء جهاز التوجيه (أكثر دقة، من أجل NAT)، وسوف تكون العقدة الثانية على نفس الشبكة مع هذا التوجيه (على سبيل المثال، على الإنترنت) (الشكل 9).

الشكل 9: عقدة واحدة NAT، غيرها

هذه القضية لها حل معين للمشكلة التي نعتبرها الآن والنظر فيها. يحتوي جهاز التوجيه المنزلي عادة على طاولة NAT.وبعد هذه آلية خاصة مصممة لضمان التعامل مع العقد داخل الشبكة الخاصة من جهاز التوجيه، على سبيل المثال، إلى مواقع الويب.

افترض أن خادم الويب متصل بالإنترنت مباشرة، وهذا هو، لديه عامة IP.* عنوان. فليكن عقدة p2.وبعد عقدة p1. (عميل الويب) إرسال طلب إلى العنوان 10.50.200.10 وبعد أولا، تندرج البيانات على جهاز التوجيه r1، أو بالأحرى على له الداخلية واجهه المستخدم 192.168.0.1 وبعد بعد ذلك، يتذكر جهاز التوجيه عنوان المصدر (العنوان p1.) ويدخلها في طاولة خاصة NAT.، ثم يغير عنوان المصدر إلى p1. r1). التالي، بطريقته الخاصة الخارج أرسلت واجهة جهاز التوجيه البيانات مباشرة إلى خادم الويب p2.وبعد يقوم خادم الويب بمعالجة البيانات التي تنشئ الإجابة وترسل مرة أخرى. يرسل جهاز التوجيه r1لأنه هو الذي يقف في العنوان المعاكس (استبدل جهاز التوجيه العنوان إلى له). يحصل جهاز التوجيه على البيانات، وينظر إلى الطاولة NAT. وإعادة توجيه هذه العقد p1.وبعد يعمل جهاز التوجيه هنا كوسيط.

وماذا لو أن عدة عقد من الشبكة الداخلية تتحول في وقت واحد إلى الشبكة الخارجية؟ كيف سيفهم جهاز التوجيه من يرسل الإجابة مرة أخرى؟ تم حل هذه المشكلة مع بورتوفوبعد عندما يستبدل جهاز التوجيه عنوان العقدة، فإنه يحل محل المنفذ أيضا. إذا جذب العقدان إلى الإنترنت، يستبدل جهاز التوجيه من موانئها المصدر مختلفوبعد ثم، عندما تعود الحزمة من خادم الويب إلى جهاز التوجيه، ستفهم جهاز التوجيه المنفذ الذي يتم تعيين هذه الحزمة. مثال أدناه.

العودة إلى التكنولوجيا Webrtc.، أو بالأحرى، إلى جانبها الذي يستخدم جليد البروتوكول (من هنا و جليد مرشحين). عقدة p2. لديه مرشح واحد (موقعه في الشبكة - 10.50.200.10 )، والعقدة p1.الذي وراء جهاز التوجيه مع NAT سيكون له مرشحان - محلي ( 192.168.0.200 ) ومرشح جهاز التوجيه ( 10.50.200.5 ). الأول ليس مفيدا، ولكن مع ذلك تم إنشاؤه، منذ Webrtc. لا يعرف شيئا عن العقدة البعيدة - يمكن أن يكون في نفس الشبكة، وربما لا. المرشح الثاني سيأتي في متناول يدي، كما نعلم بالفعل، سيلعب الميناء دورا مهما (للذهاب NAT.).

سجل في الجدول NAT. يتم إنشاؤه فقط عندما تخرج البيانات من الشبكة الداخلية. لذلك، العقدة p1. يجب أن يكون أول من نقل البيانات وفقط بعد هذه العقدة p2. سوف تكون قادرة على الوصول إلى العقدة p1..

في الممارسة العملية كل العقد سيكون في NAT.وبعد لإنشاء إدخال في الجدول NAT. كل جهاز توجيه، يجب أن ترسل العقد شيئا إلى العقدة عن بعد، ولكن هذه المرة لا يمكن لأي الأولى الوصول إلى الثانية ولا العكس. هذا يرجع إلى حقيقة أن العقد لا تعرف خارجها IP. عناوين، وإرسال البيانات إلى عناوين داخلية لا معنى لها.

ومع ذلك، إذا كانت العناوين الخارجية معروفة، فسيتم تثبيت الاتصال بسهولة. إذا تم نشر العقدة الأولى بيانات على جهاز توجيه العقدة الثاني، فإن جهاز التوجيه يتجاهلها، منذ طاولته NAT. بينما فارغة. ومع ذلك، في جهاز توجيه العقدة الأول في الجدول NAT. مطلوب سجل. إذا كانت العقدة الثانية تقوم الآن بإرسال البيانات إلى جهاز توجيه العقدة الأول، فسيتم نقل جهاز التوجيه بنجاح إلى العقدة الأولى. الآن والجدول NAT. راوتر الثاني يحتاج إلى بيانات.

المشكلة هي أن تعلم خارجي IP. العنوان، تحتاج إلى عقدة تقع في شبكة مشتركة. لحل مثل هذه المشكلة، يتم استخدام خوادم إضافية، وهي متصلة بالإنترنت مباشرة. مع مساعدتهم، يتم إنشاء إدخالات عزيزة أيضا في الجدول. NAT..

الصاعقة وتحويل الخادم

عند التهيئة Webrtc. يجب عليك تحديد المتاحة الصاعقة. و منعطف أو دور الخوادم التي سيتم استدعاؤها في المستقبل جليد الخوادم. إذا لم يتم تحديد الخوادم، فيمكن توصيل العقد فقط على نفس الشبكة (متصلة بها دون NAT.). على الفور أنه يستحق أن 3G.تحسين الاستخدام بالضرورة منعطف أو دور الخوادم.

الصاعقة. الخادم - هذا مجرد خادم على الإنترنت الذي يرجع عنوان المرسل، أي عنوان جمعية المرسل. العقدة القادمة من قبل جهاز التوجيه يناشد الصاعقة. خادم للذهاب من خلال NAT.وبعد معبئ الصاعقة. الخادم، يحتوي على عنوان المصدر - عنوان جهاز التوجيه، أي العنوان الخارجي لعقودنا. هذه العنوان الصاعقة. خادم ويرسل مرة أخرى. وبالتالي، فإن عقدة يحصل خارجها IP. العنوان والمنفذ الذي يتوفر من خلاله من الشبكة. إضافه على، Webrtc. مع هذا العنوان يخلق مرشحا إضافيا (العنوان الخارجي للموجه والمنفذ). الآن في الجدول NAT. يحتوي جهاز التوجيه على إدخال يتخطى الحزم المرسلة إلى جهاز التوجيه بواسطة المنفذ المطلوب إلى عقدةنا.

النظر في هذه العملية على المثال.

مثال (خادم صاعقة العمل)

الصاعقة. سيتم الإشارة إلى الخادم بواسطة s1.وبعد جهاز التوجيه، كما كان من قبل، من خلال r1، والعقدة - من خلال p1.وبعد سيكون من الضروري أيضا متابعة الجدول NAT. - نحن نشير إليها r1_nat.وبعد علاوة على ذلك، عادة ما يحتوي هذا الجدول عادة على العديد من السجلات من العقد الشبكية المختلفة - لن يتم إحضارها.

لذلك في البداية لدينا جدول فارغ r1_nat..

الجدول 2: رأس الحزمة

عقدة p1. يرسل هذا التوجيه الحزمة r1 (لا يهم كيف يمكن استخدام التقنيات المختلفة في شبكات فرعية مختلفة). يجب استبدال جهاز التوجيه بموجب العنوان المصدر SRC IP.نظرا لأن العنوان المحدد في الحزمة غير مناسب للشبكة الفرعية الخارجية، علاوة على ذلك، فإن العناوين من هذا النطاق محفوظة، ولا يوجد عنوان على الإنترنت لديه مثل هذا العنوان. يجعل جهاز التوجيه استبدالا في الحزمة ويخلق دخول جديد في طاولته r1_nat.وبعد للقيام بذلك، يحتاج إلى التوصل إلى رقم المنفذ. أذكر أنه نظرا لأن العديد من العقد داخل الشبكة الفرعية يمكنها الوصول إلى الشبكة الخارجية، ثم في الجدول NAT. يجب تخزين معلومات إضافية بحيث يمكن للموجه تحديد أي من هذه العقد المتعددة هو الحزمة العكسية من الخادم. دع جهاز التوجيه اخترع الميناء 888 .

تم تغيير عنوان الحزمة:

الجدول 4: طاولة NAT تجدد مع تسجيل جديد

هنا IP. عنوان وينفذ الشبكة الفرعية هو نفس الحزمة المصدر. في الواقع، عندما عكس العتاد، يجب أن يكون لدينا وسيلة لاستعادةها بالكامل. IP. عنوان الشبكة الخارجية هو عنوان جهاز التوجيه، وقد تم تغيير المنفذ إلى جهاز التوجيه الذي اخترعه.

هذا المنفذ الذي العقدة p1. يأخذ الاتصال - هذا هو بالطبع 35777 لكن خادم سفينة البيانات على خيالي ميناء 888 والتي سيتم تغييرها بواسطة جهاز التوجيه إلى الوقت الحاضر 35777 .

لذلك، استبدل جهاز التوجيه عنوان وينفذ المصدر في رأس الحزمة وأضاف إدخالا إلى الجدول NAT.وبعد الآن يتم إرسال الحزمة عبر خادم الشبكة، أي العقدة s1.وبعد في المدخل s1. لديها مثل هذه الحزمة:

SRC IP. ميناء SRC. destp ip. ميناء dest.
10.50.200.5 888 12.62.100.200 6000

الجدول 5: خادم صاعقة تلقى حزمة

مجموع، الصاعقة. يعرف الخادم أنه قد جاء حزمة من العنوان 10.50.200.5:888 وبعد الآن يرسل خادم العنوان هذا. الأمر يستحق البقاء ورؤية مرة أخرى أننا قد نظرنا للتو. الجداول أعلاه هي قطعة من رأس حزمة ليست على الإطلاق له محتوىوبعد لم نتحدث عن المحتوى، لأنه ليس من الأهمية به - إنه موضح بطريقة أو بأخرى في البروتوكول الصاعقة.وبعد الآن سننظر بالإضافة إلى العنوان أيضا محتوى. سيكون بسيطا واحتوي عنوان جهاز التوجيه - 10.50.200.5:888 على الرغم من أننا أخذناها من رأس طرد. لا يتم ذلك في كثير من الأحيان، عادة ما تكون البروتوكولات غير مهمة حول عناوين العقد، من المهم فقط أن يتم تسليم الحزم لغرضها المقصود. نحن هنا نعتبر البروتوكول الذي يحدد المسار بين العقدتين.

لذلك، لدينا الآن حزمة ثانية تذهب في الاتجاه المعاكس:

الجدول 7: خادم الصاعقة يرسل حزمة بهذا المحتوى

بعد ذلك، تسافر الحزمة عبر الشبكة حتى يتحول إلى الواجهة الخارجية لجهاز التوجيه r1وبعد يتفهم جهاز التوجيه أن الحزمة ليست مخصصة له. كيف يفهم ذلك؟ لا يمكن العثور عليها فقط في المنفذ. ميناء 888 لا يستخدم لأهدافه الشخصية، ولكنه يستخدم للآلية NAT.وبعد لذلك، في هذا الجدول، يبدو جهاز التوجيه. ينظر إلى العمود ميناء خارجي. وتبحث عن سلسلة تتزامن مع ميناء dest. من الحزمة المقدمة، وهذا هو 888 .

الملكية الفكرية الداخلية. الميناء الداخلي. IP الخارجي. ميناء خارجي.
192.168.0.200 35777 10.50.200.5 888

الجدول 8: طاولة نات

كنا محظوظين، مثل هذا الخط موجود. إذا لم يكن محظوظا، فستتم إلقاء الحزمة ببساطة. الآن تحتاج إلى فهم من من العقد من الشبكة الفرعية، من الضروري إرسال هذه الحزمة. لا تعجل، دعونا نتذكر أهمية الموانئ في هذه الآلية مرة أخرى. في الوقت نفسه، يمكن لعقدتين في الشبكة الفرعية إرسال طلبات إلى الشبكة الخارجية. ثم، إذا جاء جهاز التوجيه للعقدة الأولى 888 ، ثم للثانية سوف يأتي مع المنفذ 889 وبعد لنفترض أنه حدث، وهذا هو، الجدول r1_nat. يبدو مثل هذا:

الجدول 10: جهاز التوجيه يحل محل عنوان المتلقي

SRC IP. ميناء SRC. destp ip. ميناء dest.
12.62.100.200 6000 192.168.0.200 35777

الجدول 11: استبدال جهاز التوجيه عنوان الاستقبال

الحزمة بنجاح تأتي إلى العقدة p1. وفي النظر إلى محتويات الحزمة، يتعلم عقدة عن الخارج IP. العنوان، أي حول عنوان جهاز التوجيه في الشبكة الخارجية. يعرف أيضا المنفذ الذي يمر جهاز التوجيه NAT..

ماذا بعد؟ ما هي فائدة هذا؟ الاستخدام هو سجل في الجدول r1_nat.وبعد إذا كان الآن سوف يرسل أي شخص إلى جهاز التوجيه r1 حزمة مع ميناء 888 ثم سوف يكون جهاز التوجيه إعادة توجيه عقدة الحزمة هذه p1.وبعد وبالتالي، تم إنشاء ممر ضيق صغير إلى العقدة الخفية p1..

من المثال أعلاه، يمكنك الحصول على فكرة عن العمل. NAT. وجوهر الصاعقة. الخادم. بشكل عام، الآلية جليد و الصاعقة / التحول الخوادم تهدف فقط إلى التغلب على القيود NAT..

لا يوجد جهاز توجيه واحد بين العقدة والخادم، ولكن عدة. في هذه الحالة، ستتلقى العقدة عنوان هذا التوجيه، وهو أول من يذهب إلى نفس الشبكة مثل الخادم. بمعنى آخر، نحصل على عنوان جهاز التوجيه المتصل ب الصاعقة. الخادم. ل p2P. الاتصالات هذه هي بالضبط ما نحتاج إليه، إذا كنت لا تنسى حقيقة أن الخط الذي تحتاجه في كل جهاز توجيه ستضاف إلى الجدول NAT.وبعد لذلك، سيكون العكس هو نفسه الحديد.

منعطف أو دور الخادم هو تحسين الصاعقة. الخادم. من هنا يجب إزالته على الفور أن أي منعطف أو دور الخادم يمكن أن يعمل وكيف الصاعقة. الخادم. ومع ذلك، هناك فوائد. اذا كان p2P. التواصل مستحيل (مثل في 3G. الشبكات)، تبديل الخادم إلى وضع الاسترداد ( تناوب)، أي أنه يعمل كوسيط. بالطبع، لا حول p2P. ثم لا يأتي، ولكن وراء الآلية جليد تعتقد العقد أنهم يتواصلون مباشرة.

في الحالات اللازمة منعطف أو دور الخادم؟ لماذا لا يكفي الصاعقة. الخوادم؟ الحقيقة هي أن هناك العديد من الأصناف NAT.وبعد يتم استبدالها بنفس القدر IP. العنوان والمنفذ، ومع ذلك، فإن بعضهم لديهم حماية إضافية ضد "تزوير". على سبيل المثال، في متماثل الطاولة NAT. يتم حفظ 2 معلمات أخرى - IP. وميناء العقدة عن بعد. حزمة من الشبكة الخارجية تمر عبر NAT. في الشبكة الداخلية فقط إذا كان عنوان المصدر والمنفذ يتزامن مع الجدول المسجل في الجدول. لذلك، التركيز S. الصاعقة. فشل الخادم - الجدول NAT. مخازن العنوان والمنفذ الصاعقة. الخوادم وعندما يحصل جهاز التوجيه على حزمة من Webrtc. المحاور، ورعيه، لأنه "مزيف". لم يأت من الصاعقة. الخادم.

في هذا الطريق منعطف أو دور مطلوب الخادم في الحالة عندما يكون كلا المحاورين متماثل NAT. (الجميع من أجلها).

ملخص موجز

فيما يلي بعض البيانات حول الكيانات. Webrtc.يجب أن تبقى دائما في رأسك. بالتفصيل، يتم وصفها أعلاه. إذا كان أي من العبارات يبدو أنك لا توضح تماما، فقم بإعادة قراءة الفقرات ذات الصلة.

  • تدفق وسائل الإعلام
    • يتم حزم بيانات الفيديو والصوت في تدفقات الوسائط
    • تدفقات الوسائط مزامنة مسارات الوسائط التي تتكون منها
    • لا تتم مزامنة تدفقات الوسائط المختلفة مع بعضها البعض.
    • يمكن أن تكون تدفقات الوسائط محليا وبعيدة، وعادة ما تكون الكاميرا والميكروفون عادة ما تكون محلية، حذف البيانات تلقي البيانات من الشبكة في نموذج مشفر.
    • مسارات الوسائط هي نوعان - للفيديو والصوت
    • المسارات الإعلامية لديها القدرة على تشغيل / إيقاف
    • تتكون المسارات الإعلامية من قنوات إعلامية
    • مسارات الوسائط مزامنة قنوات الوسائط التي تتكون منها
    • تيارات الوسائط والمسارات الإعلامية لها ملصقات يمكن تمييزها
  • جلسة واصف
    • يستخدم مقبض الجلسة لتوصيل عقدتين منطقيا.
    • تعالج الجلسة تخزن معلومات عن طرق ترميز الفيديو المتوفرة وبيانات الصوت.
    • Webrtc. يستخدم آلية إشارة خارجية - مهمة بيانات رأس الجلسة ( sDP.) يقع على التطبيق
    • تتكون آلية المركب المنطقي من مرحلتين - مقترحات ( عرض.) والجواب ( إجابه.)
    • جيل واصف الجلسة مستحيل دون استخدام دفق الوسائط المحلية في حالة الاقتراح ( عرض.) ومستحيل دون استخدام واصف الجلسة عن بعد في حالة وجود إجابة ( إجابه.)
    • يجب الوصول إلى واصف الناتج Webrtc.، علاوة على ذلك، لا يهم ما إذا كان يتم الحصول على هذا الواصف عن بعد أو محليا من نفس التنفيذ Webrtc.
    • هناك تحرير صغير من واصف الجلسة
  • مرشحين
    • مرشح مرشح الجليد.) - هذا هو عنوان العقدة في الشبكة
    • يمكن أن يكون عنوان العقدة لك، وربما عنوان جهاز التوجيه أو منعطف أو دور الخادم
    • المرشحون دائما الكثير
    • المرشح يتكون من IP. عناوين وميناء ونوع النقل ( TCP. أو UDP.)
    • يتم استخدام المرشحين لإقامة اتصال مادي من العقدتين في الشبكة.
    • يجب إرسال المرشحين أيضا من خلال آلية الإشارة
    • يحتاج المرشحون أيضا إلى نقل التنفيذ Webrtc.ومع ذلك، فقط عن بعد
    • في بعض التطبيقات Webrtc. لا يمكن تحويل المرشحين إلا بعد تثبيت واصف الجلسة
  • الصاع / بدوره / الجليد / نات
    • NAT. - آلية الوصول الخارجية
    • أجهزة التوجيه الرئيسية تدعم طاولة خاصة NAT.
    • يحل جهاز التوجيه محل العناوين الموجودة في الحزم - عنوان المصدر لوحده، في حالة تذهب الحزمة إلى الشبكة الخارجية، وعنوان جهاز الاستقبال إلى عنوان العقدة في الشبكة الداخلية، إذا جاءت الحزمة من الخارج شبكة الاتصال
    • لتوفير وصول متعدد القنوات إلى الشبكة الخارجية NAT. يستخدم المنافذ
    • جليد - آلية المسح NAT.
    • الصاعقة. و منعطف أو دور الخوادم - خوادم الالتقاط للتجاوز NAT.
    • الصاعقة. يتيح لك الخادم إنشاء الإدخالات اللازمة في الجدول. NAT.وأيضا إرجاع العنوان الخارجي للعقدة
    • منعطف أو دور تعميم الخادم الصاعقة. آلية ويجعلها تعمل دائما
    • في أسوأ الحالات منعطف أو دور يتم استخدام الخادم كوسيط ( تناوب)، بمعنى آخر p2P. يتحول إلى اتصال العميل العميل العميل.

Webrtc. (الاتصالات في الوقت الفعلي على الويب) هي تقنية تسمح بتطبيقات ومواقع الويب لالتقاط تدفقات الوسائط الصوتية و / / أو الفيديو بشكل انتقائي، بالإضافة إلى بيانات تعسفية تبادل بين المتصفحات، دون استخدام إلزامي للوسطاء. تتيح لك مجموعة من المعايير التي تتضمن تقنية Webrtc تبادل البيانات وتنفيذ Teering Teleconionion، دون الحاجة إلى تثبيت الإضافات أو أي برنامج آخر لجهة خارجية.

تتكون WebRTC من العديد من واجهات البرنامج المترابط (APIS) والبروتوكولات التي تعمل معا. ستساعدك الوثائق التي تجدها هنا فهم أساسيات Webrtc، وكيفية تكوين واستخدام اتصال بطبقة البيانات والوسائط، وأكثر من ذلك بكثير.

التوافق

منذ ذلك الحين، فإن تنفيذ WebRTC هو أن تكون في عملية أن تصبح وكل متصفح لديه وظائف WebRTC، نوصي بشدة باستخدام مكتبة Polyfil للمادة المعدلة، من Google، قبل العمل على التعليمات البرمجية الخاصة بك.

يستخدم Adapter.js الأوتاد والمواد الفوليفيلين للاختلافات الملائمة لرسو السفن في تطبيقات WebRTC بين السياقات التي تدعمها. يعالج Adapter.js أيضا بادئات المصنعين، وغيرها من الاختلافات في تسمية العقارات، مما يسهل عملية التطوير على WebRTC، مع النتيجة الأكثر توافقا. تتوفر المكتبة أيضا كحزمة NPM.

لمزيد من استكشاف مكتبة Adapter.js، ننظر إليها.

مفاهيم واستخدام Webrtc

Webrtc هو متعدد الأغراض مع ميزات الوسائط المتعددة القوية للويب، بما في ذلك دعم مؤتمرات الصوت والفيديو، ومشاركة الملفات، والتقاط الشاشة وإدارة التعريف، والتفاعل مع أنظمة الهاتف القديمة، بما في ذلك دعم انتقال إشارات الطلب DTMF نغمة وبعد يمكن إنشاء اتصالات بين العقد دون استخدام برامج التشغيل الخاصة أو المكونات الإضافية، وغالبا دون خدمات وسيطة.

يتم تمثيل الاتصال بين العقدتين ككائن واجهة RTCPeerConnection. بمجرد إنشاء الاتصال وفتحه، باستخدام كائن RTCPeerconnection، يمكن إضافة قنوات MediaStream) و / أو قنوات البيانات (rtcdatachachannel) إلى الاتصال.

قد تتكون تدفقات الوسائط من أي عدد من المسارات (المسارات) لمعلومات الوسائط. يتم تمثيل هذه المسارات كائنات واجهة MediaStreamTrack وقد تحتوي على نوع واحد أو أكثر من لغات الوسائط، بما في ذلك الصوت والفيديو والنص (مثل الترجمات أو رؤساء الفصول). تتكون معظم المواضيع على الأقل، واحدة فقط من المسار الصوتي (مسار صوت واحد) أو مسارات الفيديو، ويمكن إرسالها وحصلت عليها كتدفقات (الوسائط تافهة) أو مخزنة في ملف.

أيضا، يمكنك استخدام الاتصال بين العقدتين لتبادل البيانات التعسفية باستخدام كائن واجهة RTCDACHONLEL، والذي يمكن استخدامه لنقل معلومات الخدمة أو بيانات الأسهم أو حزم حالة اللعبة أو ملفات نقل أو قنوات البيانات المغلقة.

مطلوب مزيد من التفاصيل وروابط الأدلة ذات الصلة والبرامج التعليمية اللازمة

واجهات Webrtc.

نظرا لحقيقة أن WebRTC توفر واجهات تعمل معا لإجراء مهام مختلفة، قمنا بتقسيمها إلى فئات. راجع مؤشر اللوحة الجانبية الأبجدية للتنقل السريع.

الاتصال والإدارة

يتم استخدام هذه الواجهات لتكوين اتصالات Webrtc وفتحها والتحكم فيها. أنها تمثل اتصالات وسائط ذات المستوى الفردي وقنوات البيانات والواجهات المستخدمة من خلال تبادل المعلومات حول قدرات كل عقدة لتحديد أفضل التكوين عند تثبيت اتصال الوسائط المتعددة على الوجهين.

يمثل rtcpeerconnection اتصال Webrtc بين الكمبيوتر المحلي والعقدة النائية. تستخدم للتعامل مع نقل البيانات الناجح بين العقدتين. تقدم RTCSSessionDescription معلمات الجلسة. يحتوي كل RTCSSessionEdescription على أوصاف من النوع الذي يظهر أي جزء من (العرض / الاستجابة) لعملية التفاوض، فهو يصف، ودورة SDP SDP. rtcicecandidate هو مرشح لتثبيت اتصال بالإنترنت (ICE) لإعداد اتصالات rtcpeerconnection. يوفر Rtcicetransport معلومات حول أداة اتصال الإنترنت (ICE). يمثل RTCPEERCONNECTICEEVEVEP الأحداث التي تحدث مع المرشحين الجليد عادة rtcpeerconnection. يتم إرسال نوع واحد إلى كائن الحدث هذا: iCecandidate. يتحكم RTCRTPSender في ملتوية ونقل البيانات من خلال كائن MediaStreamTrack لكائن RTCPeerConnection. يدير RTCRTPRECEIVIVILEVIVER إيصال البيانات وفك تشفيرها من خلال كائن MediaStreamTrack لكائن RTCPeerConnection. يشير RTCTrackevvent إلى أن كائن MediStriamTrack الجديد يتم إنشاء وكائن من النوع RTCRTPRECEIVER تمت إضافته إلى كائن RTCPeerConnection. يقدم RtcCertificate شهادة تستخدم كائن RTCPeerConnection. تمثل RTCDatachaCnel قناة بيانات ثنائية اللون بين عقدين اتصالين. يمثل RTCDatachAnLeFent الأحداث التي تحدث عندما يتم إرفاق كائن النوع RTCDATAchAnnel كائن كائن Datachachannel Rtcpeerconnection. يتحكم rtcdtmfsender في ترميز ونقل المنبه متعدد الترددات المزدوجين (DTMF) لكائن النوع RTCPEERCONNECTION. يشير RTCDTMFTTONechangeEvent إلى حدث وارد لتغيير نغمة إنذار دارتون متعدد التردد (DTMF). لا ينبثق هذا الحدث (ما لم يشير إلى خلاف ذلك) ولم يتم إلغاؤه (ما لم يرد خلاف ذلك). RTCSTATISREPORPRORPRORT ASSINOUSLONAL SETUCTIONS لحالة كائن MediaStreamTrack المرسلة. RtcidentityProviderRegistrar سجل مزود تحديد الهوية (IDP). يقوم RtCIdentityProvider بتنشيط قدرة المتصفح على طلب إنشاء أو التحقق من التزامات التعريف. يمثل RTCIntityAssertion معرف العقدة البعيدة للاتصال الحالي. إذا لم يتم تثبيت العقدة وتؤكد بعد، فستعود الرابط إلى الواجهة فارغة. بعد التثبيت لا يتغير. يمثل RTCInTityEvent مزود تحديد الهوية الكائن في كائن الحدث (IDP). نوع الكائن rtcpeerconnection. يتم إرسال نوع واحد إلى هذا الحدث ittityResult. يمثل RTCIDIDETITYERROREIPT كائن حدث خطأ مرتبط بموفر تحديد الهوية (IDP). نوع الكائن rtcpeerconnection. يتم إرسال نوعين من الأخطاء إلى هذا الحدث: IDPasserTerror و IdpvalidationError.

يدوي

نظرة عامة على بنية Webrtc تحت API، والتي يستخدمها المطورون لإنشاء واستخدام WebRTC، هي مجموعة من بروتوكولات الشبكة ومعايير الاتصال. هذه المراجعة هي معرض لهذه المعايير. يتيح لك WebTC تنظيم اتصال في وضع العقدة لإرسال البيانات التعسفية أو الصوت أو أجهزة الفيديو أو أي تركيبة في المتصفح. في هذه المقالة، نلقي نظرة على حياة جلسة Webrtc، بدءا من تثبيت الاتصال وتذهب عبر المسار بأكمله قبل اكتماله عندما لم تعد هناك حاجة إليها. تتكون نظرة عامة Webrtc Webrtc WebRTC من العديد من واجهات البرمجة المترابطة (APIs) والبروتوكولات التي تعمل معا لتوفير الدعم لتبادل البيانات وتتدفق الوسائط بين عقدين أو أكثر. تقدم هذه المقالة نظرة عامة موجزة لكل من واجهات برمجة التطبيقات هذه والأرض الذي يتابعه. أساسيات Webrtc هذه المقالة ستحتفظ بك من خلال إنشاء تطبيق RTC عبر المتصفح. بحلول نهاية هذه المقالة، يجب أن يكون لديك بيانات عمل وقناة إعلامية تعمل في وضع نقطة إلى نقطة. يعرض بروتوكولات WebRTC في هذه المقالة البروتوكولات، بالإضافة إلى أنه تم إنشاء API WebTC. يصف هذا الدليل كيف يمكنك استخدام عقدة الوحدة المرتبطة