ما هو WebSocket؟
WebSocket اتصال دائم ثنائي الاتجاه بين المتصفح (أو أي عميل) والخادم، يُفتح بمصافحة ترقية HTTP ثم ينقل رسائل صغيرة مؤطّرة في الاتجاهين دون اقتران طلب/استجابة. يناسب الدردشة ولوحات المتابعة الحية والإشعارات؛ واختباره يعني فحص المصافحة وترتيب الرسائل وإعادة الاتصال وكيف يتعامل الخادم مع سيل من الرسائل أو إغلاق مفاجئ.
كيفية استخدام مختبِر WebSocket
- أدخل عنوان URL لخادم WebSocket (استخدم wss:// في صفحات HTTPS) واضغط «اتصال».
- اكتب رسالة (نصية أو JSON) واضغط «إرسال» أو Ctrl/⌘+Enter.
- راقب الإطارات الواردة في السجل؛ وبدّل تنسيق JSON حسب الحاجة.
- فعّل إعادة الاتصال التلقائية أو رسالة إبقاء الاتصال لاختبار المرونة، ثم اضغط «قطع الاتصال» عند الانتهاء.
مزايا مختبِر WebSocket
- الاتصال بخوادم ws:// وwss:// مباشرةً من المتصفح، مع بروتوكولات فرعية اختيارية
- سجل بطوابع زمنية للإطارات المرسلة والمستلمة مع الاتجاه والحجم وتنسيق JSON
- إعادة اتصال تلقائية بتراجع أسّي (exponential back-off) ورسالة إبقاء الاتصال (keep-alive) اختيارية
- الإبلاغ عن رمز الإغلاق وسببه، واكتشاف الإغلاق النظيف/غير النظيف
- نسخ السجل أو تنزيله لتقارير الأخطاء
مثال على مختبِر WebSocket
اختبار الصدى (echo)
الإدخال:
wss://echo.websocket.org
{"type":"ping","id":1}النتيجة:
12:00:01.120 • info Connected
12:00:03.410 ▶ sent {"type":"ping","id":1}
12:00:03.655 ◀ recv {
"type": "ping",
"id": 1
}الأسئلة الشائعة حول مختبِر WebSocket
من أين ينشأ الاتصال؟
من متصفحك إلى الخادم مباشرةً — لا يمرّ شيء عبر متقن. استخدم wss:// في صفحة HTTPS هذه؛ فالمتصفحات تحظر ws:// غير المشفّر إلا مع localhost.
هل يمكنني إرسال ترويسات مخصّصة؟
لا تسمح المتصفحات بترويسات مخصّصة في مصافحة WebSocket. استخدم بدلاً منها معاملات الاستعلام، أو قيمة بروتوكول فرعي، أو رسالة مصادقة داخل الاتصال نفسه.
ماذا تفعل إعادة الاتصال التلقائية؟
بعد إغلاق غير متوقع، تعيد الاتصال بتراجع أسّي (1 ث، 2 ث، 4 ث … حتى 30 ث، بحدّ 10 محاولات). أما قطع الاتصال يدوياً فلا يشغّلها.
هل يمكنني إبقاء الاتصال حياً؟
فعّل خيار إبقاء الاتصال (keep-alive) لإرسال رسالة من اختيارك كل N ثانية ما دام الاتصال قائماً.
ملاحظات تقنية
لا تستطيع واجهة WebSocket في المتصفح ضبط ترويسات مخصّصة أو فحص استجابات المصافحة؛ لذا يجب أن تعتمد المصادقة على معاملات الاستعلام أو البروتوكولات الفرعية أو رسالة على مستوى التطبيق. وتُسجَّل الإطارات الثنائية مع حجمها.
المراجع
- RFC 6455: The WebSocket Protocolمصافحة WebSocket عبر HTTP والتأطير والإخفاء وping/pong ورموز الإغلاق.
- The WebSocket API — MDNواجهة WebSocket في المتصفح: فتح الاتصال وإرسال الرسائل ومعالجة أحداث الإغلاق.
- RFC 9110: HTTP Semanticsمعاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.