WebSockets

الـ WebSockets هي تقنية بتخليك تعمل اتصال مباشر بين الـ Client (يعني المتصفح مثلًا) والـ Server (السيرفر اللي بيخزن الداتا).

الفكرة هنا إنها بتخلي الاتصال يكون دائم ومستمر مش زي الـ HTTP اللي هو كل ما عايز حاجة يعمل طلب (Request) للسيرفر ويستنى الرد (Response).


📍 إيه الفرق بين الـ WebSockets وبين الـ HTTP؟

في الـ HTTP الموضوع بيكون كالتالي:

  • المتصفح بيطلب حاجة (GET, POST, إلخ).

  • السيرفر يرد عليه.

  • الاتصال بيقفل.

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

هنا بيجي دور الـ WebSockets. الفكرة إنها بتفتح "قناة" اتصال ما بين المتصفح والسيرفر وبتفضل مفتوحة.

يعني أول ما الاتصال يبدأ، الاتنين يقدروا يبعتوا لبعض داتا في أي وقت بدون ما نحتاج نطلب طلب جديد.


📍 استخدامات الـ WebSockets:

  • الشات: تخيل مثلًا واتساب ويب، لما حد يبعتلك رسالة، الرسالة بتوصلك فورًا من غير ما تعمل تحديث للصفحة. ده بسبب الـ WebSockets.

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

  • الألعاب الأونلاين: لو بتلعب لعبة متعددة اللاعبين على الإنترنت، بتكون محتاج تحديثات لحظية في الوقت الحقيقي زي تحركات اللاعبين.

  • الأسعار المباشرة: في مواقع البورصة مثلًا، أو حتى في بعض مواقع التسوق اللي بتعرضلك السعر الحالي بدون ما تحتاج تعمل Refresh للصفحة.


📍 إزاي الـ WebSockets بيشتغل؟

  • أول خطوة إن الـ Client (المتصفح) يطلب فتح اتصال WebSocket من السيرفر. وده بيتم باستخدام طلب HTTP خاص، ولو السيرفر وافق عليه، الاتصال بيبدأ.

  • بمجرد ما السيرفر يوافق، الاتصال يفضل مفتوح، وده معناه إن المتصفح والسيرفر يقدروا يتكلموا مع بعض طول ما الاتصال شغال.

  • السيرفر يقدر يبعت للمتصفح، والمتصفح يقدر يبعت للسيرفر في نفس الوقت بدون الحاجة لعمل طلبات جديدة.

  • في أي وقت، إما المتصفح أو السيرفر ممكن يقفلوا الاتصال.


📍 هل الـ WebSockets بتفرق في الأداء؟

الميزة الكبرى في الـ WebSockets هي السرعة والـ Efficiency.

بخلاف الـ HTTP، كل طلب بياخد وقت عشان يتعمله معالجة، بالإضافة إنه بيستهلك Bandwidth أكتر لإنك كل شوية بتعمل طلبات جديدة.

مع الـ WebSockets، مفيش داعي لكل ده، الاتصال دايم ومفتوح، والداتا بتتنقل فورًا. ده بيخلي الأداء أعلى، خاصة في التطبيقات اللي بتحتاج تحديثات لحظية زي الشات والألعاب.


📍 هل الـ WebSockets آمنة ولا لا؟

في منها النسخة العادية ws://، وده بيكون غير مشفر، وفي النسخة المشفرة wss://، وده بيكون زي الـ https في الـ HTTP.

لو بتتعامل مع بيانات حساسة، زي البيانات الشخصية أو البنكية، لازم تستخدم wss عشان تكون الداتا بتاعتك مشفرة.


بالتوفيق يا بطل ⚡️