تستطيع المتصفحات إرسال الصوت والفيديو مباشرةً إلى بعضها. وهذه القدرة موحّدة قياسياً باسم WebRTC، وهي توصية من W3C، وموجودة في كل متصفح حديث بلا إضافة ولا حزمة تطوير.

ويعني ذلك أن مكالمة فيديو بين شخصين يمكن أن تجري دون مرور الوسائط بخوادم أحد.

ما تحتاجه رغم ذلك#

الاتصال المباشر لا يعني بلا خوادم. فأنت تحتاج:

  • الإشارة. يجب أن يتبادل الطرفان تفاصيل الاتصال قبل أن يتصلا. وهذه مشكلة تمرير رسائل صغيرة لا مشكلة وسائط — ويكفيها WebSocket.
  • STUN. خدمة صغيرة تخبر الجهاز كيف يبدو عنوانه العام من الخارج.
  • TURN، أحياناً. حين ترفض شبكة الاتصالات المباشرة — جدران حماية مؤسسية صارمة، وبعض مشغّلي الجوال — يجب ترحيل الوسائط. وTURN هو ذلك المُرحِّل، وهو ينقل الوسائط فعلاً.

فالادعاء الصادق ليس "بلا خوادم". بل: بلا خادم وسائط، في معظم الأحيان.

ما تحتاجه المكالمة المباشرة رغم ذلك

  1. الإشارة

    يتبادل الطرفان تفاصيل الاتصال قبل أن يتصلا. مشكلة تمرير رسائل لا مشكلة وسائط.

  2. STUN

    خدمة عامة صغيرة تخبر الجهاز كيف يبدو عنوانه من الخارج. رخيصة التشغيل.

  3. TURN

    مُرحِّل لحين انعدام المسار المباشر. وهذا ينقل وسائط، فيحمل فاتورة نطاق.

  4. الطرفان

    يتدفق الصوت والفيديو والبيانات بينهما مباشرةً. ولا يرى أي خادم الوسائط.

قِس حصة الترحيل لديك بدل الوثوق برقم منشور. فالشبكات المؤسسية وشبكات الفنادق ترفعها فوق الرقم المتفائل بكثير.

أين يتوقف عن العمل#

الاتصال المباشر يتوسع بصعوبة مع عدد المشاركين. فكل شخص إضافي يعني اتصالاً آخر من كل شخص قائم — ينمو عدد الاتصالات تربيعياً، ويتبعه النطاق والمعالج.

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

كما تفقد كل ما يتطلب مرور الوسائط بمكان: التسجيل في الخادم، والتفريغ النصي، والبث المباشر إلى جمهور.

لماذا يهم الاختيار بما يتجاوز التكلفة#

الحجة المقنعة غالباً ليست السعر. بل موقع البيانات.

فسؤال "إلى أين يذهب الفيديو؟" له جواب حاسم وقابل للتحقق في البنية المباشرة: بين المشاركَين، ولا مكان آخر. أما في البنية المستضافة فالجواب تأكيد تعاقدي بشأن بنية شخص آخر.

وفي أعمال الصحة والقانون والمال والحكومة قد يحسم هذا الفارق عملية الشراء — وهو ادعاء يستطيع المشتري التحقق منه بالفحص لا بالثقة.

التصميم العملي#

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

وبهذا لا تكلّف الحالة الشائعة شيئاً ولا تُسرّب شيئاً، وتبقى الحالة غير الشائعة عاملة.

حصة الترحيل، ولماذا تحدد فاتورتك#

الرقم الذي يحكم كلفة مسار فيديو مستضاف ذاتياً هو نسبة الاتصالات التي تحتاج ترحيل TURN، لأن المكالمات المُرحَّلة تحمل نطاقاً حقيقياً والمباشرة لا تحمل شيئاً.

وهو ليس ثابتاً. بل يرتفع بشدة على الشبكات المؤسسية المقيّدة، وترجمة العناوين المتماثلة، وبعض مشغّلي الجوال، ومعظم شبكات الفنادق والمؤتمرات — أي بالضبط الشبكات التي يستخدمها جمهور الأعمال. وأي خطة مبنية على الرقم المتفائل ستخطئ في الاتجاه الذي يكلّف مالاً.

قِسه بدل افتراضه: سجّل لكل جلسة هل كان الاتصال مباشراً أم مُرحَّلاً، واقرأ النسبة لمستخدميك أنت. إضافة من سطر واحد تحوّل تخميناً إلى ميزانية.

الإشارة مشكلة صغيرة تستحق أن تُعامل كذلك#

الجزء الذي يُفرط الناس في بنائه. فالطرفان يحتاجان تبادل أوصاف الاتصال قبل تدفق الوسائط، وتلك مشكلة تمرير رسائل — WebSocket، ومفهوم غرفة، وطريقة لمعرفة من فيها.

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

أين تتوقف البنية عن كونها خياراً#

المسار المباشر يتوقف عن الصلاحية عند نقطة محددة ومتوقعة، ويجدر تسميتها كي لا يكتشفها أحد في الإنتاج:

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

أي شيء على الخادم. التسجيل والتفريغ والإشراف والبث الخارجي — كلها تتطلب مرور الوسائط بمكان.

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

المصادر

كل ادعاء يستحق التحقق، مع مكان للتحقق منه.

  1. WebRTC: Real-Time Communication in BrowsersW3C Recommendation · 8 October 2024
  2. WebRTC Extended Use CasesW3C