نوع |
واجهة برمجة تطبيقات الويب [لغات أخرى] ![]() |
---|---|
النموذج المصدري |
حقوق التأليف والنشر محفوظة [لغات أخرى] ![]() |
موقع الويب |
المستودع | |
---|---|
الرخصة |
ويب آر تي سي (اتصالات الويب في الوقت الفعلي) (بالإنجليزية: WebRTC (Web Real-Time Communication)) هو مشروع مجاني ومفتوح المصدر يوفر لمتصفحات الويب وتطبيقات الهاتف المحمول اتصالاً في الوقت الفعلي عبر واجهات برمجة التطبيقات. إنه يسمح بالاتصال الصوتي والفيديو والبث المباشر للعمل داخل صفحات الويب من خلال السماح بالاتصال المباشر من نظير إلى نظير، مما يلغي الحاجة إلى تثبيت المكونات الإضافية أو تنزيل التطبيقات الأصلية.[2]
بدعم من أبل وجوجل ومايكروسوفت وموزيلا وأوبرا، تم نشر مواصفات ويب آر تي سي بواسطة اتحاد شبكة الويب العالمية (رابطة الشبكة العالمية) وفريق هندسة الإنترنت (مجموعة مهندسي الإنترنت).[3][4]
التاريخ
في مايو 2010، اشترت شركة جوجل شركة حلول الملكية الفكرية العالمية أو جي آي بي إس، وهي شركة برمجيات نقل الصوت باستعمال بروتوكول الإنترنت ومؤتمرات الفيديو التي طورت العديد من المكونات المطلوبة للاتصال في الوقت الفعلي، مثل برامج الترميز وتقنيات إلغاء الصدى. قامت شركة جوجل بجعل تقنية جي آي بي إس مفتوحة المصدر وتعاونت مع هيئات المعايير ذات الصلة في مجموعة مهندسي الإنترنت ورابطة الشبكة العالمية لضمان إجماع الصناعة.[5][6] في مايو 2011، أطلقت جوجل مشروعًا مفتوح المصدر للاتصالات في الوقت الفعلي المستندة إلى المتصفح والمعروف باسم ويب آر تي سي.[7] وقد تبع ذلك عمل مستمر لتوحيد معايير البروتوكولات ذات الصلة في مجموعة مهندسي الإنترنت[8] وواجهات برمجة التطبيقات للمتصفح في رابطة الشبكة العالمية.[9]
في يناير 2011، قامت مختبرات إريكسون ببناء أول تنفيذ لويب آر تي سي باستخدام مكتبة ويب كيت المعدلة.[10][11] في أكتوبر 2011، نشرت رابطة الشبكة العالمية المسودة الأولى للمواصفات.[12] تتضمن إنجازات ويب آر تي سي أول مكالمة فيديو عبر متصفحات الإنترنت (فبراير 2013)، وأول عمليات نقل بيانات عبر متصفحات الإنترنت (فبراير 2014)، واعتبارًا من يوليو 2014، أصبح جوجل هانج آوتس «نوعًا ما» يستخدم ويب آر تي سي.[13]
استندت مسودة واجهة برمجة التطبيقات رابطة الشبكة العالمية على العمل الأولي الذي تم إجراؤه في مجموعة عمل تكنولوجيا تطبيقات النص التشعبي على الويب.[14] تمت الإشارة إليه باسم واجهة برمجة تطبيقات اتصال النظير، وتم إنشاء تنفيذ مفهوم ما قبل المعايير في مختبرات إريكسون.[10] تتوقع مجموعة عمل ويب آر تي سي أن تتطور هذه المواصفات بشكل كبير بناءً على:
- نتائج التبادلات الجارية في مجموعة آر تي سي ويب المرافقة في مجموعة مهندسي الإنترنت[15] لتحديد مجموعة البروتوكولات التي تحدد، جنبًا إلى جنب مع هذه الوثيقة، الاتصالات في الوقت الفعلي في متصفحات الويب. على الرغم من عدم فرض أي بروتوكول إشارة، فإن بروتوكول بدء جلسة[16] عبر مقبس ويب (RFC 7118 غالبًا ما يتم استخدام بروتوكول بدء جلسة[17] جزئيًا بسبب إمكانية تطبيقه على معظم سيناريوهات الاتصال المتوقعة بالإضافة إلى توفر برامج مفتوحة المصدر مثل.
- مشكلات الخصوصية التي تنشأ عند الكشف عن القدرات المحلية والتدفقات المحلية
- المناقشات الفنية داخل المجموعة، حول تنفيذ قنوات البيانات على وجه الخصوص[18]
- الخبرة المكتسبة من خلال التجارب المبكرة
- ردود الفعل من المجموعات والأفراد الآخرين
في نوفمبر 2017، انتقلت مواصفات ويب آر تي سي 1.0 من مسودة العمل إلى توصية المرشح.[19]
في يناير 2021، انتقلت مواصفات ويب آر تي سي 1.0 من توصية المرشح إلى التوصية.[3]
التصميم
تتضمن المكونات الرئيسية لـ ويب آر تي سي العديد من واجهات برمجة التطبيقات جافا سكريبت:
- يقوم
getUserMedia
بالحصول على الوسائط الصوتية والفيديو (على سبيل المثال، عن طريق الوصول إلى كاميرا الجهاز والميكروفون).[20] - يتيح
RTCPeerConnection
الاتصال الصوتي والفيديو بين النظراء. يقوم بمعالجة الإشارات، ومعالجة الترميز، والاتصالات من نظير إلى نظير، والأمان، وإدارة النطاق الترددي.[21] - يتيح
RTCDataChannel
الاتصال ثنائي الاتجاه للبيانات التعسفية بين النظراء. يتم نقل البيانات باستخدام بروتوكول التحكم بتدفق النقل عبر دي تي إل إس. [22] إنه يستخدم نفس واجهة برمجة التطبيقات مثل مقبس ويب ولديه زمن انتقال منخفض للغاية. [23]
تتضمن واجهة برمجة تطبيقات ويب آر تي سي أيضًا وظيفة إحصائية:
- يتيح
getStats
لتطبيق الويب استرداد مجموعة من الإحصائيات حول جلسات ويب آر تي سي. يتم وصف بيانات الإحصائيات هذه في وثيقة رابطة الشبكة العالمية منفصلة. [24]
لا تتضمن واجهة برمجة تطبيقات ويب آر تي سي أي أحكام للإشارة، أي اكتشاف النظراء للاتصال بهم وتحديد كيفية إنشاء اتصالات فيما بينهم. تستخدم التطبيقات إنشاء الاتصال التفاعلي للاتصالات وتكون مسؤولة عن إدارة الجلسات، وربما تعتمد على أي من بروتوكول بدء الجلسة، أو بروتوكول المراسلة القابلة للتوسيع والحضور (بروتوكول الحضور والمراسلة القابل للتوسعة)، أو نقل بيانات عن بعد لقائمة انتظار الرسائل، أو المصفوفة، أو بروتوكول آخر. قد تعتمد الإشارة على خادم واحد أو أكثر.[25][26]
يتطلب معيار RFC 7478 من التطبيقات توفير ترميزات الصوت بي سي إم إيه/بي سي إم يو (RFC 3551)، وحدث الهاتف كدي تي إم إف (RFC 4733)، وأوبس (RFC 6716) كحد أدنى للقدرات. تتوفر تفاصيل واجهات برمجة تطبيقات اتصال الأقران، وقناة البيانات، ومتصفح التقاط الوسائط في مواصفات رابطة الشبكة العالمية.
تعمل رابطة الشبكة العالمية على تطوير ORTC (اتصالات الكائنات في الوقت الفعلي) لويب آر تي سي.[27]
التطبيقات
يتيح ويب آر تي سي للمتصفحات بث الملفات مباشرة إلى بعضها البعض، مما يقلل أو يزيل تمامًا الحاجة إلى استضافة الملفات على جانب الخادم. يستخدم ويب تورنت نقل ويب آر تي سي لتمكين مشاركة الملفات من نظير إلى نظير باستخدام بروتوكول بت تورنت في المتصفح.[28] تستخدم بعض مواقع مشاركة الملفات هذه الميزة للسماح للمستخدمين بإرسال الملفات مباشرة إلى بعضهم البعض عبر متصفحاتهم، على الرغم من أن هذا يتطلب من الشخص الذي يقوم بالتحميل إبقاء علامة التبويب مفتوحة حتى يتم تنزيل الملف.[29][30][31] تستخدم بعض شبكات توصيل محتوى، مثل بير5 المملوكة لشركة مايكروسوفت، عرض النطاق الترددي للعميل لتحميل الوسائط إلى نظراء متصلين آخرين، مما يتيح لكل نظير العمل كخادم حافة.[32][33]
على الرغم من تطويره في البداية لمتصفحات الويب، إلا أن ويب آر تي سي لديه تطبيقات للأجهزة غير المخصصة للمتصفح، بما في ذلك المنصات المحمولة وأجهزة إنترنت الأشياء. تتضمن الأمثلة الهاتف عبر بروتوكول نقل الصوت باستعمال بروتوكول الإنترنت المستند إلى المتصفح، والذي يُطلق عليه أيضًا الهواتف السحابية أو هواتف الويب، والذي يسمح بإجراء المكالمات واستقبالها من داخل متصفح الويب، مما يحل محل متطلب تنزيل وتثبيت برنامج الهاتف.[34]
الدعم
يتم دعم ويب آر تي سي بواسطة المتصفحات التالية (قائمة غير كاملة؛ تم تحديد أقدم إصدار مدعوم):
- كمبيوتر مكتبي
- أندرويد
- جوجل كروم 28+ (ممكّن افتراضيًا منذ 29)
- موزيلا فايرفوكس 24+[39]
- أوبرا موبايل 12+
- نظام التشغيل كروم أو إس
- نظام التشغيل فايرفوكس
- بلاك بيري 10
- اي او اس
- موبايل سفاري/ويب كيت (آي أو إس 11+)
- تايزن 3.0
- يوفر جي ستريمر تنفيذًا مجانيًا لويب آر تي سي مباشرةً.[40]
- محرك أوفين ميديا إنجن
- خادم الوسائط آنت[41]
دعم الترميز عبر المتصفحات
يُنشئ ويب آر تي سي مجموعة قياسية من برامج الترميز التي يتعين على جميع المتصفحات المتوافقة تطبيقها. قد تدعم بعض المتصفحات برامج ترميز أخرى أيضًا.[42]
اسم الترميز | حساب تعريفي | توافق المتصفح |
---|---|---|
إتش.264 | خط الأساس المقيد (CB) | كروم (52+)، فايرفوكس[1]، سفاري |
في بي 8 | - | كروم، فايرفوكس، سفاري (12.1+)[43] |
في بي 9 | - | كروم (48+)، فايرفوكس |
اسم الترميز | توافق المتصفح |
---|---|
أوبس | كروم، فايرفوكس، سفاري |
جي.711 بي سي إم (قانون أ) | كروم، فايرفوكس، سفاري |
جي.711 بي سي إم (قانون μ) | كروم، فايرفوكس، سفاري |
جي.722 | كروم، فايرفوكس، سفاري |
اي ال بي سي | كروم، سفاري |
ايساك | كروم، سفاري |
الضعف
في يناير 2015، أبلغ تورنت فريك عن وجود خلل أمني خطير في المتصفحات التي تدعم ويب آر تي سي، مما أدى إلى تعريض أمان أنفاق شبكة خاصة افتراضية للخطر من خلال الكشف عن عنوان بروتوكول الإنترنت الحقيقي للمستخدم.[44] لا تظهر طلبات قراءة عنوان عنوان بروتوكول الإنترنت في وحدة تحكم مطور المتصفح، ولا يتم حظرها بواسطة معظم إضافات حظر الإعلانات والخصوصية والأمان، مما يتيح التتبع عبر الإنترنت على الرغم من الاحتياطات.[45]
لقد تم الإبلاغ عن أن سبب تسرب العنوان ليس خطأ يمكن تصحيحه، ولكنه أساسي للطريقة التي يعمل بها ويب آر تي سي؛ ومع ذلك، هناك العديد من الحلول للتخفيف من المشكلة. يمكن اختبار تسرب ويب آر تي سي، ويتم تقديم الحلول لمعظم المتصفحات.[46] يمكن تعطيل ويب آر تي سي، إذا لم يكن ذلك ضروريًا، في معظم المتصفحات. يمكن أن تعمل الوظيفة الإضافية يوبلوك أوريجن على إصلاح هذه المشكلة (نظرًا لأن بعض المتصفحات تقوم الآن بإصلاح هذه المشكلة بنفسها، فقد تم تعطيل هذا الخيار في هذه المتصفحات بدءًا من يوبلوك أوريجن الإصدار 1.38 فصاعدًا[47]).
انظر أيضًا
- بروتوكول النقل في الوقت الحقيقي (يُعرف أيضًا باسم RTP) يتم استخدامه داخليًا بواسطة ويب آر تي سي (على وجه التحديد، فهو يستخدم SRTP)[48]
المراجع
- ^ ا ب وصلة مرجع: https://api.github.com/repos/w3c/webrtc-pc. الوصول: 17 ديسمبر 2018.
- ^ How WebRTC Is Revolutionizing Telephony نسخة محفوظة 2014-04-07 على موقع واي باك مشين.. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
- ^ ا ب "Web Real-Time Communications (WebRTC) transforms the communications landscape as it becomes a World Wide Web Consortium (W3C) Recommendation and Internet Engineering Task Force (IETF) standards". World Wide Web Consortium. 26 يناير 2021. مؤرشف من الأصل في 2022-07-27. اطلع عليه بتاريخ 2021-01-27.
- ^ "Rtcweb Status Pages". tools.ietf.org. مؤرشف من الأصل في 2020-04-20. اطلع عليه بتاريخ 2021-02-18.
- ^ "Are the WebRTC components from Google's acquisition of Global IP Solutions?". WebRTC. مؤرشف من الأصل في 2011-06-07. اطلع عليه بتاريخ 2018-02-06.
- ^ Wauters، Robin (18 مايو 2010). "Google makes $68.2 million cash offer for Global IP Solutions". TechCrunch. مؤرشف من الأصل في 2018-02-07. اطلع عليه بتاريخ 2018-02-06.
- ^ Harald Alvestrand (31 مايو 2011). "Google release of WebRTC source code". public-webrtc@w3.org. مؤرشف من الأصل في 2013-02-27. اطلع عليه بتاريخ 2012-09-12.
- ^ "Charter of the Real-Time Communication in WEB-browsers (rtcweb) working group". مؤرشف من الأصل في 2013-11-11. اطلع عليه بتاريخ 2013-11-11.
- ^ "WebRTC 1.0: Real-time Communication Between Browsers". W3.org. مؤرشف من الأصل في 2012-09-05. اطلع عليه بتاريخ 2012-09-12.
- ^ ا ب "Beyond HTML5: Peer-to-Peer Conversational Video". Ericsson Research blog. Labs.ericsson.com. 25 يناير 2011. مؤرشف من الأصل في 2017-02-25. اطلع عليه بتاريخ 2021-03-21.
- ^ Stefan Håkansson؛ Stefan Ålund (26 مايو 2011). "Beyond HTML5: Experiment with Real-Time Communication in a Browser". Ericsson Research blog. مؤرشف من الأصل في 2018-02-07. اطلع عليه بتاريخ 2018-02-06.
- ^ "WebRTC 1.0: Real-time Communication Between Browsers (W3C Working Draft 27 October 2011)". World Wide Web Consortium. 27 أكتوبر 2011. مؤرشف من الأصل في 2011-10-29. اطلع عليه بتاريخ 2018-02-06.
- ^ Nowak، Szymon. "WebRTC: So Much More Than Videoconferencing". GitHub. مؤرشف من الأصل في 2018-02-07. اطلع عليه بتاريخ 2018-02-06.
- ^ "Introduction — HTML Standard". Whatwg.org. مؤرشف من الأصل في 2014-08-16. اطلع عليه بتاريخ 2012-09-12.
- ^ "Rtcweb Status Pages". Tools.ietf.org. مؤرشف من الأصل في 2012-09-05. اطلع عليه بتاريخ 2012-09-12.
- ^ SIP Trunking، MTPL (18 يوليو 2023). "SIP Trunking VoIP with WebRTC SDK". Moon Technolabs. مؤرشف من الأصل في 2023-08-05. اطلع عليه بتاريخ 2023-07-18.
- ^ SIP Trunking، MTPL (18 يوليو 2023). "SIP Trunking VoIP with WebRTC SDK". Moon Technolabs. مؤرشف من الأصل في 2023-08-05. اطلع عليه بتاريخ 2023-07-18.
- ^ Jesup، Randell؛ Loreto، Salvatore؛ Tüxen، Michael (5 مارس 2012). "draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol". Tools.ietf.org. مؤرشف من الأصل في 2012-10-31. اطلع عليه بتاريخ 2012-09-12.
- ^ "WebRTC 1.0: Real-time Communication Between Browsers (W3C Candidate Recommendation 02 November 2017)". 2 نوفمبر 2017. مؤرشف من الأصل في 2017-11-02. اطلع عليه بتاريخ 2019-03-25.
- ^ "Media Capture and Streams: getUserMedia". W3C. 3 سبتمبر 2013. مؤرشف من الأصل في 2014-01-02. اطلع عليه بتاريخ 2014-01-15.
- ^ "WebRTC: RTCPeerConnection Interface". W3C. 10 سبتمبر 2013. مؤرشف من الأصل في 2012-09-05. اطلع عليه بتاريخ 2014-01-15.
- ^ Jesup, Randell; Loreto, Salvatore; Tüxen, Michael (Jan 2021). "RFC 8831 - WebRTC Data Channels". datatracker.ietf.org (بالإنجليزية). Archived from the original on 2022-03-10. Retrieved 2022-03-10.
- ^ "WebRTC: RTCDataChannel". W3C. 10 سبتمبر 2013. مؤرشف من الأصل في 2012-09-05. اطلع عليه بتاريخ 2014-01-15.
- ^ "Identifiers for WebRTC's Statistics API". W3C. 29 سبتمبر 2014. مؤرشف من الأصل في 2017-07-15. اطلع عليه بتاريخ 2017-12-02.
- ^ Tsahi Levent-Levi (13 أبريل 2020). "WebRTC Server: What is it exactly?". BlogGeek.me. مؤرشف من الأصل في 2020-05-11. اطلع عليه بتاريخ 2020-06-10.
- ^ Tsahi Levent-Levi (13 نوفمبر 2014). "Matrix.org and WebRTC: An Interview with Matthew Hodgson". BlogGeek.me. مؤرشف من الأصل في 2021-02-25. اطلع عليه بتاريخ 2020-06-10.
- ^ "W3C ORTC (Object Real-time Communications) Community Group". 19 أغسطس 2014. مؤرشف من الأصل في 2014-10-29. اطلع عليه بتاريخ 2014-10-29.
- ^ "WebTorrent FAQ". webtorrent.io (بالإنجليزية). Archived from the original on 2022-03-11. Retrieved 2022-03-10.
- ^ "How to Transfer Files Between Linux, Android, and iOS Using Snapdrop". MUO (بالإنجليزية الأمريكية). 4 Aug 2021. Archived from the original on 2022-01-29. Retrieved 2022-03-10.
- ^ Pinola, Melanie (7 Apr 2014). "The easiest and quickest way to transfer files between devices on the same network". Computerworld (بالإنجليزية). Archived from the original on 2022-06-28. Retrieved 2022-03-10.
- ^ "FilePizza: share files without the middleman in your browser - gHacks Tech News". gHacks Technology News (بالإنجليزية الأمريكية). 12 May 2015. Archived from the original on 2022-01-23. Retrieved 2022-03-10.
- ^ Foley, Mary Jo. "Microsoft acquires Peer5 to supplement Teams' live video streaming". ZDNet (بالإنجليزية). Archived from the original on 2022-03-10. Retrieved 2022-03-10.
- ^ "Overview - Peer5 P2P Docs". docs.peer5.com. مؤرشف من الأصل في 2022-03-16. اطلع عليه بتاريخ 2022-03-10.
- ^ "Catch the Babelfish: Irish telco devises a new kind of cloud phone". نوفمبر 2017. مؤرشف من الأصل في 2017-11-01. اطلع عليه بتاريخ 2017-11-20.
- ^ "ORTC API is now available in Microsoft Edge". Microsoft. 18 سبتمبر 2015. مؤرشف من الأصل في 2015-10-09. اطلع عليه بتاريخ 2015-09-20.
- ^ Firefox Notes - Desktop نسخة محفوظة 2014-08-21 على موقع واي باك مشين.. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
- ^ "Safari 11.0". Apple Inc. مؤرشف من الأصل في 2017-11-14. اطلع عليه بتاريخ 2017-06-06.
- ^ Opera News نسخة محفوظة 2015-09-07 على موقع واي باك مشين.. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
- ^ Firefox Notes - Desktop نسخة محفوظة 2021-04-01 على موقع واي باك مشين.. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
- ^ "GStreamer 1.14 release notes". gstreamer.freedesktop.org. مؤرشف من الأصل في 2018-03-20. اطلع عليه بتاريخ 2019-12-19. since version 1.15
- ^ "Scalable Streaming Solutions with Ant Media Server". antmedia.io (بالإنجليزية الأمريكية). 7 Jun 2017. Retrieved 2024-12-11.
- ^ "Codecs used by WebRTC - Web media technologies | MDN". developer.mozilla.org (بالإنجليزية الأمريكية). Archived from the original on 2021-07-27. Retrieved 2021-07-29.
- ^ Fablet، Youenn (12 مارس 2019). "On the Road to WebRTC 1.0, Including VP8". WebKit. مؤرشف من الأصل في 2021-07-29. اطلع عليه بتاريخ 2021-07-29.
- ^ Huge Security Flaw Leaks VPN Users’ Real IP-addresses نسخة محفوظة 2021-01-08 على موقع واي باك مشين. TorrentFreak.com (2015-01-30). Retrieved on 2015-02-21.
- ^ STUN IP Address requests for WebRTC نسخة محفوظة 2015-02-18 على موقع واي باك مشين. Retrieved on 2015-02-21.
- ^ Timmerman، Crystal (28 فبراير 2022). "WebRTC leaks real IP addresses (even with VPN)". IPVanish. مؤرشف من الأصل في 2022-08-13. اطلع عليه بتاريخ 2022-08-12.
- ^ Raymond Hill (17 سبتمبر 2021). "Prevent WebRTC from leaking local IP address". uBlock Origin documentation. مؤرشف من الأصل في 2016-02-21. اطلع عليه بتاريخ 2021-12-18.
- ^ "Introduction to the Real-time Transport Protocol (RTP) - Web APIs | MDN". developer.mozilla.org. 26 يوليو 2024.
للقراءة الإضافية
- Proust، S.، المحرر (مايو 2016). Additional WebRTC Audio Codecs for Interoperability. مجموعة مهندسي الإنترنت. DOI:10.17487/RFC7875. RFC 7875. اطلع عليه بتاريخ 2016-10-12.
- Valin، J. M.؛ Bran، C. (مايو 2016). WebRTC Audio Codec and Processing Requirements. مجموعة مهندسي الإنترنت. DOI:10.17487/RFC7874. RFC 7874. اطلع عليه بتاريخ 2016-10-12.
- Roach، A. B. (مارس 2016). WebRTC Video Processing and Codec Requirements. مجموعة مهندسي الإنترنت. DOI:10.17487/RFC7742. RFC 7742. اطلع عليه بتاريخ 2016-10-12.
- Perumal، M.؛ Wing، D.؛ Ravindranath، R.؛ Reddy، T.؛ Thomson، M. (أكتوبر 2015). Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness. مجموعة مهندسي الإنترنت. DOI:10.17487/RFC7675. RFC 7675. اطلع عليه بتاريخ 2016-10-12.
- Holmberg، C.؛ Hakansson، S.؛ Eriksson، G. (مارس 2015). Web Real-Time Communication Use Cases and Requirements. مجموعة مهندسي الإنترنت. DOI:10.17487/RFC7478. RFC 7478. اطلع عليه بتاريخ 2016-10-12.