Pergunta

Eu estava lendo a especificação e muitos exemplos sobre o uso de WebSockets. Quase todos eles falam sobre a transferência de mensagens UTF-8 ou ASCII usando o WebSockets.

O mais recente Hybi WebSocket Spec solicitou suporte para transferência binária. Req 6 em Hybi Spec

Também li em algum lugar que o Chrome suporta o Hybi. Mas o último lançamento Chrome 7.0 funciona apenas quando Draft-Hixie é selecionado na configuração PywebSocket.

Algum navegador tem suporte para Spec Hybi? Mesmo que seja Dev, está tudo bem.

Foi útil?

Solução

Pode demorar um pouco até que a codificação não UTF-8 (ou seja, binária) seja suportada no WebSockets.

Sugiro usar o codificação/decodificação Base64 no cliente e no servidor. Todos os navegadores com suporte a websockets têm janela.atob (decodificação base64) e window.btoa (codificação base64). A maioria dos idiomas em que você pode escrever um servidor WebSockets possui bibliotecas Base64 (ou seja, módulo BASE64 no Python).

Se você deseja transferir dados binários, pode ser interessante no WSProxy incluído com Novnc que é um cliente VNC baseado na Web. O WSProxy (existe uma versão C e Python) é um proxy genérico de soquetes TCP genéricos. Base64 codifica/decodifica todo o tráfego de/para o navegador. Você pode usá -lo para conectar a partir de um navegador WebSockets a qualquer tipo de porta TCP.

Observe que o NOVNC possui uma implementação JavaScript do codificação/decodificação base64 porque a crença ou não, a versão JavaScript é um pouco mais rápida que o ATOB/BTOA.

Isenção de responsabilidade: criei o NOVNC.

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