Skip to content

مختبر WebSocket أونلاين (عميل ws/wss)

اختبر WebSocket من متصفحك: اتصل بـws:// أو wss://، وأرسل نصاً أو JSON أو إطارات ثنائية حقيقية من HEX/Base64، واقرأ الرسائل الثنائية بصيغة HEX، وشاهد رموز الإغلاق وأسبابها. تذهب الرسائل مباشرةً إلى خادمك، لا إلى خوادمنا.

يعمل في المتصفّح مجاني
يرسل متصفحك الرسائل مباشرةً إلى الخادم الذي تُدخله — ولا تمر عبر خوادم go-tools.
املأ بـ: (خدمة صدى تابعة لجهة خارجية: توفّرها غير مضمون، ورسائلك تذهب إلى تلك الجهة الخارجية)
غير متصل

تظهر الرسائل هنا. لا يُفتح أي اتصال WebSocket حتى تنقر «اتصال».

الإرسال الدوري (نبض على مستوى التطبيق)
ms

يرسل هذا رسالة نصية عادية على مؤقّت. وهو ليس إطار ping على مستوى البروتوكول — فصفحات الويب لا تستطيع إرسال إطارات ping/pong ولا رؤيتها. معطّل افتراضياً، لأن الخادم الذي لا يتوقعه قد يُغلق الاتصال.

يُختبر الاتصال، والرسائل النصية والثنائية، ورموز الإغلاق، وحالات فشل المصافحة، ومهلة الاتصال، ومصافحة Socket.IO، ونبض الاتصال، وإعادة الاتصال، وسيل من 10,000 رسالة، اختباراً شاملاً مقابل خادم WebSocket محلي؛ وقد قيس سلوك المتصفحات الموصوف في هذه الصفحة في Chromium وFirefox وWebKit في أكتوبر 2026. — فريق Go Tools · Oct 13, 2026

بناه وتحقّق منه فريق هندسة Go Tools.

إجابات سريعة عن مختبر WebSocket

هل تستطيع صفحة HTTPS هذه الاتصال بـws://localhost؟

نعم في Chrome بعد السماح بالوصول إلى الشبكة المحلية يتوقف ذلك على المتصفح (حتى أكتوبر 2026). يسأل Chrome 147 وما بعده أولاً هل يُسمح للصفحة بالوصول إلى الأجهزة على شبكتك المحلية؛ وبعد اختيار «السماح» يتصل ws://localhost وws:// إلى عنوان IP في الشبكة المحلية. أما Firefox فيتصل بـlocalhost مباشرةً لكنه يحظر عناوين الشبكة المحلية. ويحظر Safari اتصالات ws:// من صفحات HTTPS.

لماذا لا يذكر الاتصال الفاشل سوى 1006؟

المتصفح يخفي السبب حين تفشل المصافحة، يُلزَم المتصفح بألّا يعطي الصفحة سوى حدث خطأ ورمز الإغلاق 1006 — دون حالة HTTP أو سببها أبداً. اضغط F12: تعرض وحدة التحكم في Chrome وEdge رمز الحالة الذي أعاده الخادم.

هل يمكنني إضافة ترويسة Authorization؟

المتصفحات لا تستطيع ضبط الترويسات لا. لا توفّر واجهة WebSocket في المتصفح أي وسيلة لضبط ترويسات الطلب. ضع الرمز المميز في معامل URL أو في بروتوكول فرعي أو في ملف تعريف ارتباط — أيّها يقبله خادمك.

هل نبض الاتصال إطار ping؟

إنه رسالة عادية لا. لا تستطيع صفحات الويب إرسال إطارات ping/pong على مستوى البروتوكول ولا رؤيتها؛ فالمتصفح يردّ على إطارات ping القادمة من الخادم بنفسه. والإرسال الدوري هنا رسالة نصية عادية تُرسَل على فاصل زمني، وهو معطّل افتراضياً.

لماذا لا أستطيع الاتصال بخادم Socket.IO؟

استخدم الإعداد المسبق Socket.IO Socket.IO ليس WebSocket مجرّداً. اختر الإعداد المسبق Socket.IO: فهو يتصل بـ/socket.io/?EIO=4&transport=websocket، ويردّ بـ40 على حزمة الفتح، وعلى كل ping ‏(2) بـpong ‏(3) (Socket.IO v3/v4).

ما هو مختبر WebSocket أونلاين؟

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

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

ما يضيفه مقارنةً بوحدة تحكم المتصفح المجرّدة: عرض الرسائل الثنائية بصيغة HEX (أو Base64) وإرسالها من HEX أو Base64 كإطارات ثنائية حقيقية، وتنسيق JSON تلقائياً، وشرح رموز الإغلاق، وقائمة تحقق حين يفشل الاتصال، وتنبيه قبل الاتصال حين يُرجَّح أن يحظر المتصفح العنوان، وسجل يظل سريع الاستجابة مع نحو 2,000 رسالة في الثانية (بحسب قياساتنا).

09:30:01.204 · Connecting to ws://localhost:8080/ws
09:30:01.219 · Connected · subprotocol: chat
09:30:02.517 → TXT 17 B {"type":"hello"}
09:30:02.531 ← TXT 25 B {"type":"hello","ok":true}
09:30:03.002 → BIN 4 B 48 69 00 FF
09:30:03.010 ← BIN 4 B 48 69 00 FF
09:30:09.880 · Closed · code 4001: application-defined code

ميزات مختبر WebSocket

localhost والشبكة المحلية: إرشادات لكل متصفح قبل أن تتصل

قبل الاتصال تفحص الأداة العنوان: فاتصال ws:// غير المشفّر إلى اسم نطاق من صفحة HTTPS هذه سيُحظر، فتنبّهك إلى ذلك وتقترح wss://. ومع localhost وعناوين IP في الشبكة المحلية تخبرك أن Chrome سيطلب إذن الوصول إلى الشبكة المحلية، وكيف يختلف Firefox وSafari (حتى أكتوبر 2026).

الرسائل الثنائية بصيغة HEX، وإرسال ثنائي حقيقي

تُعرض الرسائل الثنائية المستقبَلة بصيغة HEX، بواقع 16 بايتاً في كل سطر، أو بصيغة Base64. اكتب البايتات بالصورة 48 69 00 FF أو 0x48,0x69 أو Base64 فتخرج رسالةً ثنائية؛ ويُبلَّغ عن الأحرف غير الصالحة والعدد الفردي من الأرقام مع موضعها، وتعرض معاينة البايتات ما سيُرسَل بالضبط.

رموز إغلاق وحالات فشل يمكنك التصرف بناءً عليها

يعرض كل إغلاق الرمز ونص السبب وهل اكتملت مصافحة الإغلاق، مع معنى الرموز القياسية 1000–1015 وملاحظة لرموز التطبيقات 4000–4999. والفشل قبل فتح الاتصال ينتج قائمة تحقق بدلاً من التخمين.

سجل سريع مع بحث وتصدير

تُرسم الرسائل مرة واحدة في كل إطار عرض، فتظل الصفحة سريعة الاستجابة مع نحو 2,000 رسالة في الثانية في اختباراتنا. ولكل إدخال اتجاه وطابع زمني بالمللي ثانية ونوع وحجم بالبايت. صفِّ بحسب الاتجاه، وابحث، وأوقف العرض مؤقتاً، واحتفظ بآخر N إدخالاً، وانسخ السجل أو صدّره نصاً.

البروتوكولات الفرعية، ومهلة الاتصال، والإعداد المسبق Socket.IO

اطلب بروتوكولاً فرعياً واحداً أو أكثر (مفصولة بفواصل) وشاهد هل أكّد الخادم أحدها. وتُنهي مهلة الاتصال المصافحات التي لا يجيب عنها الخادم أبداً. ويُتمّ الإعداد المسبق Socket.IO مصافحة Engine.IO v4 ويردّ على ping نيابةً عنك.

نبض الاتصال وإعادة الاتصال عند الطلب

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

أمثلة على اختبار WebSocket: localhost والبيانات الثنائية ورموز الإغلاق وSocket.IO

اختبار خادم تطوير محلي

ws://localhost:8080/ws
متصل
→ TXT 17 B {"type":"hello"}
← TXT 25 B {"type":"hello","ok":true}

في Chrome 147 وما بعده يسأل المتصفح أولاً هل يسمح بالوصول إلى شبكتك المحلية؛ اختر «السماح». ويتصل Firefox بـlocalhost مباشرةً، بينما يحظر Safari اتصالات ws:// من صفحة HTTPS هذه (حتى أكتوبر 2026).

إرسال رسالة ثنائية من HEX

48 69 00 FF
→ BIN 4 B 48 69 00 FF

في وضع HEX ترسل الأداة رسالةً ثنائية تحمل هذه البايتات الأربعة، لا النص 48 69 00 FF. والقيمة SGkA/w== بصيغة Base64 ترسل البايتات الأربعة نفسها.

قراءة إغلاق من الخادم

يُغلق الخادم الاتصال بالرمز 4001 والسبب "token expired"
أُغلق الاتصال · الرمز 4001: رمز يحدده التطبيق · إغلاق نظيف
السبب: token expired

الرموز 4000–4999 يحددها التطبيق، فابحث عن 4001 في توثيق الخادم. أما الرموز 1000–1015 فقياسية وتُشرح في السجل.

الاتصال بخادم Socket.IO

البروتوكول: Socket.IO v3/v4، العنوان ws://localhost:3000
جارٍ الاتصال بـ ws://localhost:3000/socket.io/?EIO=4&transport=websocket
← 0{"sid":"…","pingInterval":25000,…}
→ 40
← 40{"sid":"…"}

يملأ الإعداد المسبق مسار Socket.IO واستعلامه، ويردّ بـ40 للانضمام إلى مساحة الأسماء الافتراضية، كما يردّ على كل ping ‏(2) بـpong ‏(3). أرسل الأحداث بالصورة 42["event","data"].

كيف تختبر WebSocket أونلاين

  1. 1

    أدخل عنوان الخادم

    اكتب عنوان ws:// أو wss:// أو الصقه؛ ويُعامَل http:// وhttps:// معاملة ws:// وwss://. انظر إلى الملاحظة تحت العنوان: فهي تنبّهك حين يُرجَّح أن يحظره المتصفح.

  2. 2

    أضف البروتوكولات الفرعية إن احتاجها الخادم

    تشترط بعض الخوادم بروتوكولاً فرعياً، مثل mqtt. أدخل واحداً أو أكثر، مفصولة بفواصل. وبعد الاتصال يعرض السجل أيّها أكّده الخادم.

  3. 3

    اتصل

    انقر «اتصال». ومع localhost أو عنوان في الشبكة المحلية في Chrome، اختر «السماح» حين يُسأل عن الوصول إلى الشبكة المحلية. وإذا فشل الاتصال، فاتبع قائمة التحقق التي تظهر.

  4. 4

    أرسل الرسائل واقرأها

    اختر «نص» أو HEX أو Base64، وتحقق من المعاينة واضغط Ctrl+Enter. يُنسَّق JSON المستقبَل وتُعرض البيانات الثنائية بصيغة HEX؛ ويمكنك تحويل عرضها إلى Base64 من شريط أدوات السجل.

  5. 5

    صفِّ، ثم انسخ أو صدّر

    صفِّ بحسب الاتجاه أو ابحث في السجل، وأوقف العرض مؤقتاً أثناء سيل الرسائل، ثم انسخ السجل أو صدّره نصاً مع الطوابع الزمنية والاتجاه والأحجام بالبايت.

أخطاء شائعة في اتصال WebSocket

ws:// إلى اسم نطاق من صفحة HTTPS

تحظر المتصفحات اتصالات ws:// غير المشفّرة إلى اسم نطاق من صفحة محمّلة عبر HTTPS (محتوى مختلط). ويرفضها Chrome وFirefox فوراً بخطأ SecurityError. استخدم wss://؛ ولخادم في الشبكة المحلية في Chrome، اكتب عنوان IP الخاص به (بشرط السماح بالوصول إلى الشبكة المحلية).

✗ خطأ
ws://api.example.com/ws
✓ صحيح
wss://api.example.com/ws

كتابة HEX في وضع النص

في وضع النص تُرسَل 48 69 على أنها الأحرف النصية 4 و8 والمسافة و6 و9. انتقل إلى HEX لإرسال البايتين 0x48 0x69 رسالةً ثنائية.

✗ خطأ
وضع النص: 48 69 → TXT 5 B
✓ صحيح
وضع HEX: 48 69 → BIN 2 B

استخدام عنوان Socket.IO كأنه WebSocket مجرّد

يرفض خادم Socket.IO اتصال WebSocket المجرّد على مساره الجذري، ومن دون الرد على مصافحته وعلى ping يُغلق الاتصال. استخدم الإعداد المسبق Socket.IO.

✗ خطأ
ws://localhost:3000
✓ صحيح
ws://localhost:3000/socket.io/?EIO=4&transport=websocket

الرمز المميز في ترويسة طلب

لا تستطيع المتصفحات إرسال ترويسة Authorization مع مصافحة WebSocket. فإن كان خادمك يسمح بذلك، فمرّر الرمز المميز معاملاً في URL أو بروتوكولاً فرعياً بدلاً منها.

✗ خطأ
Authorization: Bearer eyJ…
✓ صحيح
wss://api.example.com/ws?token=eyJ…

متى يفيدك مختبر WebSocket أونلاين

فحص نقطة نهاية في الخادم الخلفي
تأكّد من أن مسار WebSocket الجديد يجيب، وافحص أولى الرسائل التي يرسلها، واختبر كيف يتعامل مع المدخلات المشوّهة — قبل أن توجد الواجهة الأمامية.
تصحيح أخطاء وكيل عكسي
خلف Nginx أو بوابة، تحقّق هل يمر طلب الترقية (upgrade) وكم يصمد الاتصال الخامل.
إنترنت الأشياء والبروتوكولات الثنائية
الأجهزة والوسطاء (brokers) التي تتخاطب بالبيانات الثنائية عبر WebSocket يمكن قراءتها بصيغة HEX وإرسال بايتات دقيقة إليها من HEX أو Base64.
إعادة إنتاج رموز الإغلاق
شاهد رمز الإغلاق والسبب اللذين يرسلهما الخادم فعلاً، مثلاً حين تنتهي صلاحية رمز مميز أو حين يُقيَّد معدل طلبات عميل.
فحص العرض تحت سيل من الرسائل
راقب خادماً يدفع نحو 2,000 رسالة في الثانية (بحسب قياساتنا) دون أن تتجمد الصفحة، مع عدّادات للرسائل والبايتات.

كيف تعمل اتصالات WebSocket في المتصفح

مصافحة الفتح
يبدأ اتصال WebSocket بطلب HTTP يحمل الترويسة Upgrade: websocket. ويبني المتصفح ترويسات الطلب بنفسه — Origin وSec-WebSocket-Key وSec-WebSocket-Version: 13 وSec-WebSocket-Protocol من قائمة البروتوكولات الفرعية — ولا تستطيع الصفحة إضافة غيرها. ويجيب الخادم بـ101 Switching Protocols، ومن ثم يتبادل الطرفان الرسائل.
الرسائل النصية والثنائية
تُرسل send() مع سلسلة نصية رسالةً نصية مرمّزة بـUTF-8؛ ومع بايتات ترسل رسالةً ثنائية. وتستقبل الصفحات رسائل كاملة، لا إطارات ولا أجزاء ولا أقنعة أبداً. وتضبط هذه الأداة binaryType على arraybuffer لتصل الرسائل الثنائية بالترتيب ويمكن عرضها بصيغة HEX.
لماذا لا تحمل الأخطاء أي تفاصيل
يمنع معيار WebSocket المتصفحات من إخبار السكربتات بسبب فشل الاتصال — ففشل DNS والمنفذ المرفوض وخطأ الشهادة وHTTP 401 تبدو كلها متطابقة — حتى لا تستطيع الصفحة استكشاف شبكتك المحلية. فلا ترى الصفحات سوى حدث error ورمز الإغلاق 1006 (ويُبلغ Firefox عن أخطاء الشهادة بالرمز 1015).
المحتوى المختلط والوصول إلى الشبكة المحلية
لا يجوز لصفحة HTTPS فتح اتصال ws:// غير مشفّر إلى مضيف عام. ومنذ Chrome 147 يخضع WebSocket أيضاً لـ«الوصول إلى الشبكة المحلية» (Local Network Access): فالوصول إلى localhost أو إلى عنوان IP خاص من صفحة عامة يحتاج إلى إذنك. ويستثني Firefox عناوين الاسترجاع (loopback)؛ أما Safari فلا يستثنيها (حتى أكتوبر 2026).
رموز الإغلاق
لا يجوز للعميل الإغلاق إلا بالرمز 1000 أو 3000–4999، ولا يتجاوز السبب 123 بايتاً بترميز UTF-8. والرمزان 1005 (بلا رمز حالة) و1006 (إغلاق غير طبيعي) لا يظهران على الخط أبداً؛ بل يبلّغ عنهما المتصفح. ويُبلَّغ عن 1015 عند فشل TLS في بعض المتصفحات فقط.

نصائح لاختبار WebSocket

استخدم wss:// خارج جهازك
يصل wss:// المشفّر بشهادة موثوقة إلى الخوادم العامة من هذه الصفحة في كل المتصفحات ويحمي الرموز المميزة الموجودة في URL؛ أما مع localhost أو عناوين الشبكة المحلية فلا يزال Chrome يطلب إذن الوصول إلى الشبكة المحلية أولاً. واحتفظ بـws:// غير المشفّر لـlocalhost.
راجع وحدة التحكم حين تفشل المصافحة
لا ترى الصفحة سوى 1006. أما Chrome وEdge فيطبعان حالة HTTP في وحدة التحكم، وهي تشير عادةً مباشرةً إلى مشكلات المصادقة أو المسار أو الوكيل.
اسمح بـOrigin على الخادم
ترسل المتصفحات Origin دائماً. فإذا كان خادمك يتحقق منه، فاسمح بـhttps://go-tools.org أثناء الاختبار؛ فترويسات CORS لا تنطبق على WebSocket.
دع الخادم يرسل ping
لإبقاء الاتصالات الخاملة حيّة عبر الوكلاء، اجعل الخادم يرسل إطارات ping؛ فالمتصفح يردّ عليها تلقائياً. ولا تستخدم الإرسال الدوري إلا إذا كان بروتوكولك يتوقع رسالة على مستوى التطبيق.
أبقِ الرموز المميزة خارج السجلات المشتركة
كثيراً ما تحمل العناوين رموزاً مميزة. تحتفظ الأداة بالعنوان والرسائل في الذاكرة فقط، لكن السجلات المُصدَّرة ولقطات الشاشة تتضمنها — فاحذف الأسرار قبل المشاركة.

أسئلة شائعة عن مختبر WebSocket

هل يمكنني اختبار ws://localhost أو خادم في الشبكة المحلية من صفحة HTTPS هذه؟
يتوقف ذلك على المتصفح (حتى أكتوبر 2026). يعامل Chrome 147 وما بعده اتصالات WebSocket بحاسوبك أو بشبكتك المحلية على أنها وصول إلى الشبكة المحلية: ففي المرة الأولى يسألك هل تسمح لهذا الموقع، وبعد اختيار «السماح» تتصل ws://localhost وws://127.0.0.1 وws:// إلى عنوان IP في الشبكة المحلية مثل 192.168.1.10. وفي Chrome يجب كتابة خادم الشبكة المحلية عنوانَ IP؛ فاسم المضيف العادي (غير .local) يُحظر حتى لو أشار إلى شبكتك. أما Firefox فيتصل بـlocalhost مباشرةً لكنه يحظر ws:// إلى عناوين الشبكة المحلية. ويحظر Safari اتصالات ws:// إلى localhost والشبكة المحلية من صفحات HTTPS. ولا تنطبق قاعدة المحتوى المختلط على wss://: فالخوادم العامة تعمل من هذه الصفحة في كل المتصفحات ما دامت الشهادة موثوقة؛ أما مع localhost أو عناوين الشبكة المحلية فيطلب Chrome هنا أيضاً إذن الوصول إلى الشبكة المحلية أولاً.
لماذا لا أستطيع الاتصال بـws://example.com من هذه الصفحة؟
تُقدَّم هذه الصفحة عبر HTTPS، والمتصفحات تحظر اتصال ws:// غير المشفّر إلى مضيف عام من صفحة HTTPS (محتوى مختلط). ويرفضه Chrome وFirefox فوراً بخطأ SecurityError، وتبلّغ الأداة عنه. استخدم عنوان wss:// الخاص بالخادم. أما المواقع العامة المقدَّمة عبر http العادي فلا تخضع لهذه القاعدة، لكنها في إصدارات Chrome الحديثة لا تستطيع الوصول إلى localhost أو شبكتك المحلية إطلاقاً.
فشل الاتصال بالرمز 1006 — ما الخطأ؟
لا يعني 1006 سوى أن الاتصال انتهى دون مصافحة إغلاق. وحين تفشل المصافحة، يُلزم معيار WebSocket المتصفح بإخفاء السبب عن الصفحة — فالرمز 401 و404 والمنفذ المرفوض وخطأ الشهادة وOrigin المرفوض تبدو كلها متطابقة (ويُبلغ Firefox عن أخطاء الشهادة بالرمز 1015) — لذا لا يستطيع أي مختبر ويب يتصل مباشرةً من المتصفح إظهاره. اضغط F12 وافتح «وحدة التحكم» (Console): يطبع Chrome وEdge حالة HTTP التي أعادها الخادم. وتفصل الأداة أيضاً حالات الفشل قبل فتح الاتصال عن حالات الانقطاع بعد فتحه، وتسرد الأسباب المعتادة لكلٍّ منهما.
هل يمكنني إضافة ترويسة Authorization أو ترويسة مخصّصة أخرى؟
لا. لا تسمح واجهة WebSocket في المتصفح لصفحات الويب بضبط ترويسات الطلب؛ فالمتصفح يرسل مجموعة ثابتة (منها Origin وملفات تعريف الارتباط الخاصة بموقع الخادم نفسه). والحلول البديلة الشائعة، بحسب ما يدعمه خادمك: رمز مميز في URL، مثل wss://host/ws?token=…؛ أو رمز مميز يُمرَّر بروتوكولاً فرعياً (لا يقبل البروتوكول الفرعي إلا أحرفاً محددة، لذا يصلح JWT بينما لا يصلح Base64 القياسي الذي يحوي = أو /، ويجب أن يعيد الخادم البروتوكول الفرعي نفسه)؛ أو ملف تعريف ارتباط، لا ترسله المتصفحات بموثوقية إلا إلى موقع الصفحة نفسه، لذا فهو من هذه الصفحة لا يصل عادةً إلى خادمك. وأدوات مثل Postman تستطيع ضبط الترويسات لأنها ليست متصفحات.
لماذا يعمل في Postman ولا يعمل هنا؟
يستطيع Postman وعملاء سطر الأوامر ضبط أي ترويسة، ولا يرسلون Origin عادةً. أما المتصفح فلا يستطيع إضافة ترويسة Authorization، ويرسل دائماً Origin: https://go-tools.org. فإذا كان الخادم يحتاج إلى رمز مميز في ترويسة أو يتحقق من Origin، فإنه يرفض مصافحة المتصفح؛ فاسمح بـOrigin أو مرّر الرمز المميز بطريقة أخرى.
هل يرسل نبض الاتصال إطارات ping الخاصة بـWebSocket؟
لا. لا تستطيع صفحات الويب إرسال إطارات ping/pong على مستوى البروتوكول ولا رؤيتها؛ فحين يرسل الخادم ping يجيب المتصفح بـpong من تلقاء نفسه. والإرسال الدوري هنا يرسل رسالة نصية عادية، مثل {"type":"ping"}، على الفاصل الزمني الذي تحدده. وهو معطّل افتراضياً لأن الخادم الذي لا يتوقع تلك الرسالة قد يُغلق الاتصال. ولإبقاء اتصال خامل حيّاً عبر وكيل، اجعل الخادم يرسل ping.
لماذا لا أستطيع الاتصال بخادم Socket.IO الخاص بي؟
Socket.IO بروتوكول يعمل فوق WebSocket، وليس WebSocket مجرّداً. يتوقع خادم Socket.IO v3/v4 المسار /socket.io/?EIO=4&transport=websocket، ويرسل حزمة فتح تبدأ بـ0، وينتظر 40 للانضمام إلى مساحة الأسماء الافتراضية، ويُغلق الاتصال إذا لم يُردَّ على كل ping ‏(2) بـpong ‏(3). اختر الإعداد المسبق Socket.IO فتتولى الأداة كل ذلك؛ ثم أرسل الأحداث بالصورة 42["event","data"]. والخوادم المضبوطة على HTTP long-polling وحده لن تقبل اتصال WebSocket إطلاقاً.
ينقطع اتصالي بعد نحو دقيقة — لماذا؟
السبب عادةً مهلة خمول في وكيل عكسي. يُغلق Nginx افتراضياً الاتصال الموكَّل حين لا تمر بيانات لمدة 60 ثانية (proxy_read_timeout)، فترى الصفحة الرمز 1006. ارفع المهلة أو اجعل الخادم يرسل إطارات ping. وخلف Nginx تأكّد أيضاً من أن الوكيل يمرّر الترقية عبر proxy_set_header Upgrade $http_upgrade; وproxy_set_header Connection "upgrade"; (وقبل Nginx 1.29.7 أضف أيضاً proxy_http_version 1.1;).
كيف أتصل بخادم wss:// بشهادة موقّعة ذاتياً؟
افتح https://the-same-host:port/ في تبويب جديد، واقبل تحذير الشهادة، ثم عد واتصل. يتذكر المتصفح الاستثناء لهذا المضيف والمنفذ. ولا تفعل ذلك إلا مع خوادم الاختبار الخاصة بك، لأنه يُضعف حماية المتصفح.
كيف أرسل الرسائل الثنائية وأقرأها؟
اختر HEX أو Base64 صيغةً للإرسال. يقبل HEX الصور 48 69 00 FF أو 0x48,0x69 أو 486900FF؛ وتعرض المعاينة البايتات، ويُبلَّغ عن الأحرف غير الصالحة أو العدد الفردي من الأرقام مع موضعها بدلاً من إرسالها. وتُعرض الرسائل الثنائية المستقبَلة بصيغة HEX، بواقع 16 بايتاً في كل سطر، ويحوّلها شريط أدوات السجل إلى Base64. ولقراءة HEX المستقبَل نصاً، الصقه في تحويل الست عشري إلى نص.
هل تمر رسائلي عبر خوادم go-tools؟
لا. يتصل متصفحك مباشرةً بالعنوان الذي تُدخله، ولا تمر الرسائل عبر خوادمنا. كما لا تفتح الأداة أي اتصال WebSocket حتى تنقر «اتصال»، وتحتفظ بالعنوان والرسائل في الذاكرة فقط — لا في عنوان الصفحة ولا في تخزين المتصفح. وكبقية الموقع، تحمّل هذه الصفحة سكربتات التحليلات والإعلانات.
هل يوجد خادم يمكنني الاختبار عليه؟
استخدم الصدى المحلي: فهو يعمل داخل هذه الصفحة، ويعيد صدى كل ما ترسله، ولا ينشئ أي اتصال شبكي. وتوجد أيضاً خدمات صدى عامة مثل wss://echo.websocket.org/، لكنها تابعة لجهات خارجية: توفّرها غير مضمون، ورسائلك تذهب إلى تلك الجهة الخارجية.

أدوات ذات صلة

عرض جميع الأدوات →

منشئ أوامر cURL وبنّاؤها

الويب وAPI

ابنِ أوامر curl في متصفحك — حدد الطريقة والترويسات والمصادقة والجسم، واحصل على أمر جاهز للنسخ فوراً. إعدادات مسبقة لـ Bearer وPOST JSON ورفع الملفات. مجاني وخاص وبلا تسجيل.

مولّد htpasswd — bcrypt وحماية الويب

الويب وAPI

أنشئ مدخلات htpasswd بـ bcrypt وApache MD5 (apr1) وSHA-1 والمزيد. احصل على إعداد Apache وnginx وDocker جاهز للصق. 100% في متصفحك — بدون رفع.

مولّد وسوم Open Graph وميتا

الويب وAPI

أنشئ وسوم Open Graph وبطاقات Twitter ووسوم SEO مع معاينة حية على Google وFacebook وX. مجانية 100% وداخل المتصفح، بدون تسجيل — انسخ الكود والصقه.

مختبر nginx location — لماذا تفوز هذه الكتلة

الويب وAPI

اعرف أي كتلة location يختارها nginx — ولماذا خسرت كل كتلة أخرى. مختبر مجاني لمطابقة =, ^~, ~ و~* يعمل بالكامل داخل متصفحك بلا رفع أي شيء.

طرفية المنفذ التسلسلي أونلاين (مراقب تسلسلي في المتصفح)

الويب وAPI

مراقب تسلسلي في Chrome أو Edge بلا تثبيت: اتصل بـCH340 أو CP2102 أو ESP32 أو Arduino، وأرسل نصاً أو HEX، وكرّر الإرسال بمؤقّت، وأضف Modbus CRC-16 تلقائياً. نص مشوّه؟ تكتشف الأداة GBK وتعيد رسم ما استُقبل.

حاسبة الشبكات الفرعية IPv4

الويب وAPI

احسب عنوان الشبكة وعنوان البث ونطاق المضيفات القابلة للاستخدام وقناع الشبكة الفرعية والقناع البدل لأي كتلة IPv4 بتدوين CIDR. يدعم وصلات /31 وفق RFC 3021 ويقسّم الكتلة إلى شبكات متساوية، ويعمل بالكامل داخل متصفحك.