اطلاق الاصدار 1.0 من Socket.IO
هذا ال Emmiter الخاص ب php
لا بالعكس. لكن سبب الخلط هو أن التنفيذ المرجعي له بلغة javascript/node.js. لكنه بروتوكول متوفر للكثير من اللغات.
هناك تقنية عيارية جيدة اسمها websockets وهناك من يسهل توظيفها واسمه socket.io وهو كما jquery بالنسبة لجافاسكربت.
تخيل أن لديك موقع مثل فيسبوك وهناك معلومات تظهر آنيا في الوقت الحقيقي مثل التنبيهات والدردشات وطلبات الصداقة هل تظن أن فيسبوك يتصل بالخادوم كل ثانية ليجلب تلك التحديثات.
ما يحدث هو أنه عندما تكون هناك تحديثات ترسل لك من خلال websockets.
هذه المكتبة أو البروتوكول (أقصد socket.io) يعرف أشياء إضافية فوق websockets (أظن مثل heart beats) وطرق للتعامل مع المتصفحات التي لا تدعم websockets من خلال الفلاش مثلا.
ممكن بس نبذة قصيرة عنه ؟
انا اعرف ان الـ Socket هو مثل كلاس يوضع في البرامج او الالعاب التي تحوي
اتصال بين server و clint و تستخدم مثلاً في العاب الشبكة متل cs 1.6
و البرامج الاخرى التي تحوي نفس المهمة .. هل كلامي صحيح ام انه ناقص ؟
نعم هو تقنية مشابهة لكن في الويب.
المقابس sockets هي وسيلة عمل البرامج الشبكية (ثنائية الاتجاه full duplex) في تطبيقات سطح المكتب و websockets تضيف هذا المفهوم إلى بروتوكول http أحادي الاتجاه
في HTTP تطلب أنت من الخادم صفحة فيرد عليك بمحتواها. قد تطلب منه بيانات على صورة كائن JSON أو وثيقة XML فيرد عليك بما تريد لكنه باتجاه واحد حيث على المتصفح أن يطلب شيء من الخادم وهذا ما يعرف باسم السحب pull.
ما يحدث في websockets هو أننا نرسل له طلب ترقية الاتصال إلى البروتوكول الجديد websockets ثنائي الاتجاه والذي غالبا ما يعمل على منفذ آخر مثلا 8080.
في socket.io ما يحدث هو إن لم يكن المتصفح يدعم websockets يمكن استعمال ملف فلاش واستعمال sockets فيه وكل هذا دون عناء من المبرمج.
هذا البروتوكول تقوده الأحداث ولا تحتاج لأن تعمل سحب دوري كل ثانية. عمل برنامج محادثة يكون عملية بسيطة حيث أنه عندما يطبع فلان شيء نأخذه ونرسله إلى المقبس الخاص بالطرف الآخر حيث يكون ينتظر هذا الحدث ويعالجه بعرض الكلمة المرسلة.
من تطبيقاته أيضا عرض معلومات آنية في الوقت الحقيقي عن حالة الخادم.
التعليقات