Pergunta

Eu testei muitos soquete exemplos e a comunicação entre eles era muito simples:socket é aberto e permanece aberta até ser fechada e nenhuma informação está a ser enviada, exceto que você tenha enviado.

Com o HTML5, web sockets estes dois momentos são diferentes.

Em primeiro lugar, assim o cliente HTML5 soquete se conecta ao soquete do servidor envia um monte de informações:

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

Como interpretar esta informação?O que fazer com ele?

Em segundo lugar, quando eu enviar alguns de seqüência de caracteres a partir do servidor de depuração (Hercules utilitário de configuração), soquete onmessage evento não é disparado e socket de cliente fecha a conexão imediatamente após este.

Então, eu suponho que o HTML5 web socket espera cerca de handshake antes de poder ser utilizado.Onde ler sobre isso?

BTW:Eu estou usando o Ruby como server-side idioma.

Foi útil?

Solução

Eu testei muitos web socket exemplos ....

A partir do que você descreve você não usar o "web sockets", mas simplesmente "sockets", por exemplo,directa TCP/IP.WebSockets (e.g.o que você chama de "HTML web sockets") são diferentes:eles são usados para criar algo tomada como mais de que seja estabelecida uma conexão HTTP.Portanto, você vê o HTTP consulta com o "Upgrade:websocket" cabeçalho, com o "S-WebSocket-Chave", etc.

Depois de estabelecer a conexão (servidor envia a resposta com o código 101) a conexão WebSocket tem a sua própria definição e o embaralhamento dos dados, para que você não pode usá-lo apenas com o soquete normal ferramentas.

Ver http://tools.ietf.org/html/rfc6455 para a especificação e uso "WebSockets" como a palavra-chave se você olhar para mais documentação, uso de...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top