سؤال

سمعت عن واجهة مآخذ الويب في مواصفات ملف HTML من سؤال ذي صلة هنا.
يبدو واعدا جدا!
لا أفهم كيف يعمل الأمر فلا يزال يستخدم بروتوكول HTTP ويعمل - حوله أو هل يعمل شيء مثل مآخذ TCP؟

هل كانت مفيدة؟

المحلول

بروتوكول مقبس الويب هو بروتوكول يستند إلى TCP، ولكنه تصميم لخفض الضغط إلى HTTP. يوجد أيضا مصافحة HTTP التي تطلب ترقية الخادم إلى بروتوكول مآخذ ويب. لذلك إذا كان الخادم يدعمه، فسيتم استخدام اتصال TCP ثنائي المرن، وإلا فإن اللجوء إلى HTTP و HTTLET Hacks لذلك.

نصائح أخرى

بطريقة ما، هو طلب HTTP ومقبس TCP العادي.

مطلوب اتصال WebSocket باستخدام طلب HTTP عادي عبر TCP. هناك بعض الرؤوس المرسلة التي تشير إلى خادم الويب أنها عبارة عن Websocket التي يتم طلبها وليس صفحة عادية، ولكن بشكل أساسي، إنها مجرد طلب HTTP.

بعد إرسال الاستجابة من الخادم، يتم ترقية الاتصال. وهذا هو، يتم اختطاف اتصال TCP الذي تم استخدامه ل HTTP للحصول على مكالمة أعلى: نقل بيانات ثنائي الاتجاه، في الوقت الفعلي.

بمجرد أن يكون لديك القدرة على التواصل ثنائي الاتجاه و بكفاءة (وهو الفوز الرئيسي على المذنب)، يتم زيادة آفاق المطورين بشكل كبير. فجأة، أشياء مثل ألعاب MMO والتعاون في الوقت الفعلي، لم تكن ممكنة باستخدام تقنيات الويب فقط، أصبحت ممكنة.

ليس http، ولا هو مآخذ TCP عادي. تم تصميمه للحصول على النفقات العامة المنخفضة من اتصالات المقبس العادية (AJAX / COMET مرتفعة للغاية)، ولكن دون التضحية ببعض مبادئ أمن المتصفح التي تم تطويرها خلال السنوات القليلة الماضية.

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

تبدأ كل حزمة من البيانات (سواء تم إرسالها من الخادم أو من العميل) ب " x00" (Zero Byte)، تتبعها بيانات مشفرة UTF-8 وتنتهي ب " XFF" (جميع البايت).

المسودة الحالية المعيارية هنا: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76.

قد تجد أيضا WSProxy المضمنة في Novnc لتكون مفيدة كمرجع. Wsproxy هو خادمات الويب العامة إلى وكيل المقبس TCP. هناك كل من نسخة C و Python من WSProxy المضمنة مع Novnc.

http://github.com/kanaka/novnc/tree/master/utils/

في مثل هذا الوضع، يأتي دور الخادم عندما:

في HTML 5، Websocket مثل Fone (في اتجاهين في اتجاهين.) لا يرونة التحدث. بروتوكول HTTP ترقية إلى بروتوكول WebSocket.(wss:// from ws://) يجب أن يكون الخادم قادرا على فتح قناة دوبلكس وبالتالي توافق على اتصال دوبلكس. يرجى أيضا الذهاب من خلال هذا الرابط:http://www.html5rocks.com/en/utororials/websockets/basics/

شكرا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top