Question

J'ai testé de nombreux exemples de socket et la communication entre eux était assez simple: la prise est ouverte et reste ouverte jusqu'à ce que vous la fermiez et qu'aucune information n'est envoyée, à l'exception de celle que vous avez envoyée.

avec des sockets Web HTML5 Ces deux moments sont différents.

Au début, dès que la prise HTML5 du client se connecte à la prise de serveur, elle envoie un tas d'informations:

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

Comment interpréter ces informations?Que faire avec ça?

à la seconde, lorsque j'envoie une chaîne du serveur de débogage (Utilitaire de configuration Hercules), l'événement onmessage de Socket n'est pas tiré et le socket client ferme la connexion immédiatement après cela.

Donc, je suppose que le socket Web HTML5 s'attend à une prise de main avant de pouvoir être utilisée.Où lire à ce sujet?

BTW: J'utilise Ruby comme langue côté serveur.

Était-ce utile?

La solution

J'ai testé de nombreux exemples de socket Web ....

De ce que vous décrivez, vous n'avez pas utilisé de "sockets Web" mais simplement "sockets", par exemple.TCP / IP direct.WebSockets (par exemple ce que vous appelez "Les sockets Web HTML") sont différents: ils sont utilisés pour créer quelque chose de socket comme sur une connexion HTTP établie.Par conséquent, vous voyez la requête HTTP avec l'en-tête "Mettre à niveau: Websocket", avec la "touche SEC-WebSocket", etc.

Après avoir établi la connexion (Server envoie une réponse avec le code 101), la connexion WebSocket a son propre cadrage et un marvalage des données. Vous ne pouvez donc pas l'utiliser avec les outils de prise normes.

voir http://tools.ietf.org/html/rfc6455 pour la spécification etUtilisez "WebSockets" comme mot-clé si vous recherchez plus de documentation, d'utilisation ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top