ما هو WebSocket وكيف يعمل

ستستكشف هذه المقالة ما هو WebSocket وكيف يعمل، بما في ذلك العلاقة بين WebSocket وHTTP.

Amir Hassan

Amir Hassan

2 يونيو 2025

ما هو WebSocket وكيف يعمل

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

ما هو WebSocket

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

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

مبدأ WebSocket

WebSocket Principle

WebSocket هو بروتوكول اتصال ثنائي الاتجاه يعتمد على TCP تم تقديمه مع HTML5، ويعرف بتوافقه مع HTTP، وانخفاض التحميل، والتواصل الفعال. يقوم WebSocket بإنشاء اتصال دائم بين العميل والخادم لنقل البيانات الثنائية الاتجاه في الوقت الفعلي.

تتمثل الميزة الرئيسية لـ WebSocket في إنشاء اتصال TCP دائم يستمر حتى يقوم العميل أو الخادم بإصدار طلب إنهاء. يقوم WebSocket بإبلاغ الخادم بالرغبة في ترقية البروتوكول من HTTP/1.1 إلى بروتوكول WebSocket من خلال معلومات رأس الترقية في HTTP/1.1.

يتم بناء WebSocket على بروتوكول HTTP، ويتم إرسال جميع طلبات WebSocket من خلال بروتوكول HTTP القياسي، والذي يُعترف به بعد ذلك كعلومات رأس محددة ترقية على جانب الخادم. HTTP ضروري لـ WebSocket، حيث يستخدم WebSocket تشفير Sec-WebSocket-Key أثناء المصافحة وتوقيع SHA-1.

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

من الجدير بالذكر أن بروتوكول اتصال WebSocket يعتمد على الإطارات (حزم البيانات). يمكن تقسيم حزمة بيانات كاملة إلى عدة إطارات، يتضمن كل منها جزءاً من البيانات ومعلومات الرأس.

العلاقة بين WebSocket و HTTP

WebSocket VS HTTP

يستخدم كلا البروتوكولين للتواصل الشبكي.

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

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

باختصار، WebSocket وHTTP هما بروتوكولان مختلفان مع اختلافات في وضع الاتصال، والاستخدام، وإنشاء الاتصال، ولكنهما مرتبطان ببعضهما البعض أيضاً.

استخدام Apidog لتصحيح خدمة WebSocket

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

امتداد Google Chrome

يمتلك Apidog كلاً من النسخة الويب وعميل، فإذا كنت تستخدم النسخة الويب وتريد تصحيح خدمة محلية، تحتاج إلى تثبيت امتداد Google Chrome الخاص بـ Apidog. رابط التحميل: امتداد Google Chrome الخاص بـ Apidog

الخطوة 1. إنشاء طلب WebSocket

في التحديث الأخير لـ Apidog، أصبح الوصول إلى واجهة WebSocket سهلاً من خلال النقر على زر "+" في الجانب الأيسر من مشروعك واختيار "واجهة WebSocket جديدة (بيتا)".

من هناك، يمكنك إدخال عنوان URL لواجهة WebSocket الخاصة بك لإنشاء اتصال وإرسال واستلام الرسائل بسلاسة. أدناه، سنقدم تعليمات أكثر تفصيلاً.

الخطوة 2. إعداد الرسالة والمعلمات

في قسم الرسالة، يمكنك ملء المعلومات التي تريد إرسالها إلى جانب الخادم، وسيستلم الخادم المعلومات التي قمت بإرسالها.

Setting Message and Params

خلال عملية النقل، يمكن أيضًا حمل المعلمات. يمكن حمل معلمات الاستعلام على العنوان، وأنواع البيانات التي يمكن حملها تشمل سلسلة، عدد صحيح، عدد، مصفوفة.

Paras

الخطوة 3. حفظ الطلب

بعد إكمال المعلومات المطلوبة، يمكنك النقر على زر الحفظ لحفظها للاستخدام في المستقبل، مما يسهل الوصول إليها مرة أخرى في المرة القادمة.

Saving Request

الخطوة 4. الاتصال وإرسال طلبات WebSocket

للتواصل مع خادم WebSocket، نحتاج إلى إنشاء اتصال WebSocket. يمكننا ببساطة النقر على زر "الاتصال" للقيام بذلك.

Connect and send WebSocket requests

بعد نجاح الاتصال، سيعرض Apidog رسالة نجاح على الفور. على جانب الخادم، سيتم أيضًا تقديم استجابة بسبب النجاح في الاتصال.

الخطوة 5. إرسال طلب WebSocket

ثم يمكننا التواصل مع الخادم عبر WebSocket. يمكننا استخدام Apidog للنقر على زر الإرسال لإرسال الرسائل والمعلمات إلى الخادم.

الخطوة 6. التواصل مع خدمة WebSocket

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

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات