سؤال

لقد اختبرت العديد من أمثلة المقابس وكان التواصل بينها بسيطًا جدًا:يتم فتح المقبس ويظل مفتوحًا حتى تغلقه ولا يتم إرسال أي معلومات باستثناء تلك التي أرسلتها.

مع مآخذ ويب HTML5، تختلف هاتان اللحظتان.

في البداية، بمجرد اتصال مقبس HTML5 الخاص بالعميل بمقبس الخادم، فإنه يرسل مجموعة من المعلومات:

GET /echo HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:2002
Origin: null
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: iYzsmhdzg6h6/UGtCLLGVA==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, x-webkit-deflate-frame
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Cookie: _rails-socket-listener_session=dGtleFYxNjhIaUZrZVpOWUNIMHdFZFd6WW9wY2FJYjIwOWdSMFVPR1ZkYkZUakExdVlhNzMvWEphNG1IRUIvT1JsQ0N6bHF4REFXTkJUemE4R2RjOER6bXdhSEt6M0tIYmRwV0w3VzkrVGt4MzN2Z0M3MXMyYndZR3hvOGMySTJTZmdEMW9JdEE5ZERuSDB4VCtROFNnPT0tLTlheG1KamlBSVVmT0tUZ1F5bmQ0OUE9PQ%3D%3D--23413749a30295f08d277292837c76187a02a332

كيفية تفسير هذه المعلومات؟ماذا نفعل معها؟

في الثانية، عندما أرسل بعض السلاسل من خادم تصحيح الأخطاء (الأداة المساعدة لإعداد Hercules)، فإن مأخذ التوصيل onmessage لم يتم إطلاق الحدث وسيقوم مقبس العميل بإغلاق الاتصال مباشرة بعد ذلك.

لذا، أفترض أن مقبس الويب HTML5 يتوقع بعض المصافحة قبل أن يتم استخدامه.أين تقرأ عنها؟

بالمناسبة:أنا أستخدم روبي كلغة من جانب الخادم.

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

المحلول

لقد اختبرت العديد من أمثلة مقبس الويب ....

مما وصفته، لم تستخدم "مآخذ الويب" ولكن ببساطة "المآخذ"، على سبيل المثال.TCP/IP المباشر.WebSockets (على سبيل المثال.ما تسميه "مآخذ ويب HTML") مختلف:يتم استخدامها لإنشاء شيء يشبه المقبس عبر اتصال HTTP ثابت.لذلك ترى استعلام HTTP مع "الترقية:websocket" مع "Sec-WebSocket-Key" وما إلى ذلك.

بعد إنشاء الاتصال (يرسل الخادم استجابة بالرمز 101)، يكون لاتصال WebSocket إطار خاص به وتشفير للبيانات، لذلك لا يمكنك استخدامه مع أدوات المقبس العادية.

يرى http://tools.ietf.org/html/rfc6455 للحصول على المواصفات واستخدام "WebSockets" ككلمة رئيسية إذا كنت تبحث عن المزيد من الوثائق والاستخدام...

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