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

اعثر على الطلب الذي يحمل الرسائل

رشّح حسب النوع بمجرد أن تستقر الصفحة: يظهر WebSocket كمدخل خاص به، ويبقى تدفق الأحداث مفتوحًا باستجابة متزايدة، ويتكرر الاستقصاء الطويل على فاصل منتظم. سجّل المخطط والمضيف والمنفذ والحالة لأي منها يحمل التحديثات. لاحظ هل بدأ قبل تسجيل الدخول أم بعده، لأن ناقلًا يُفتح قبل المصادقة يكون عادةً تصميمًا مختلفًا عن ناقل يُفتح بعدها. اقرأ ترويسات الطلب الخاصة بطلب الترقية أو نوع المحتوى المقبول، لأنها تحدد الناقل الذي اختارته الصفحة المنشورة فعليًا.

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

الإعداد والتسليم والعمر تفشل بطرق مختلفة

يُفتح WebSocket بترقية HTTP تُجاب بحالة 101، وكل ما بعد ذلك رسائل مؤطرة بدلًا من جلب صفحات، وهما مرحلتان يبقيهما RFC 6455 منفصلتين صراحةً. يجيب تدفق الأحداث بنوع محتوى متدفق ويُبقي جسم الاستجابة مفتوحًا. يمكن لكليهما أن يفشل في الفتح، أو يُفتح دون تسليم شيء، أو يُفتح ويسلّم ثم يموت بهدوء.

wscat -c wss://chat.example.com/socket -H "Origin: https://chat.example.com"
curl -N -H "Accept: text/event-stream" https://chat.example.com/events

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

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

المضيف المباشر وجهة منفصلة

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

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

أصلح قائمة الوجهات، لا فحوصات الأمان

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

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

سجّل ما يكفي للتسليم

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

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

مقالات ذات صلة