WebSocket Ping مقابل TCP Keepalive عبر وسيط
اختر فحصًا لحيوية نظير WebSocket بدلًا من اعتبار مقبس TCP الحيّ دليلًا على أن مسار التطبيق يستجيب.
المقبس الحيّ على مستوى TCP، والنظير المستجيب لـ WebSocket، والتقدّم المفيد في التطبيق، ثلاث ملاحظات مختلفة:
| الدليل | ما يثبته |
|---|---|
| الحيوية على مستوى TCP | مسار النقل المفحوص يستجيب على ذلك المستوى |
| Pong مطابق من WebSocket | أجاب النظير على إطار التحكّم ذلك |
| إقرار من التطبيق | أكّد التطبيق عملية وفق بروتوكوله الخاص |
غالبًا ما يحتفظ الوسيط الأمامي باتصالات منفصلة تجاه العميل والوجهة. نظير العميل على مستوى TCP هو الوسيط، بينما ينتقل Ping داخل نفق قائم إلى نقطة نهاية WebSocket.
Pong مطابق
يشترط البروتوكول أن يحمل Pong المستجيب بيانات تطبيق Ping. استخدم هذه المطابقة لتحديد فحص معلّق. يُسمح بـ Pong غير مطلوب، لكنه لا يطلب إقرارًا؛ وإرساله بعد كل رسالة بيانات يقدّم دليلًا مختلفًا.
فضّل آلية نبض القلب المدعومة في المكتبة. أما JavaScript في المتصفح فتحتاج إلى عقد نبض قلب على مستوى التطبيق بدلًا من ذلك. اختر الفواصل وحدود الفشل وفقًا لحمل العمل وسياسة الشبكة. قد تؤدي إيقافات الجدولة أو حلقة أحداث مثقلة إلى تفويت حد صارم دون إثبات فشل الشبكة.
أبقِ المستقبِل يعمل
يحتاج العميل إلى إدخال وإخراج مستمرّين لاستقبال إطارات التحكّم ومعالجتها. وحجب هذه الآلية قد يجعل التجويع المحلي يبدو كانقطاع.
يولّد Ping حركة في النفق، لكن كل وسيط يقرّر ما يرضي سياسة الخمول لديه. لا يضمن أي نبض قلب الحماية من حدّ مطلق لعمر الاتصال.
قد يجيب النظير على Ping بينما يتوقّف تطبيقه عن إنتاج التحديثات، وقد يكون اشتراك صامت سليمًا. تتبّع آخر Pong صالح وحدث التطبيق ذي المعنى بشكل منفصل عندما يهمّ الاثنان. عند الفشل، احتفظ بالمسار والأزمنة المنقضية والفحص المعلّق، ثم أغلق أو استعد عبر دورة الحياة المدعومة.