我正在阅读有关使用Websockets的规范和许多示例.几乎所有的人都谈论使用Websockets的UTF-8或ascii消息传输.
最新的Hybi Websocket规范要求支持二进制传输. REQ 6 in hybi spec
另外我读到某个地方,chrome支持hybi.但最新版本Chrome 7.0仅在pywebsocket配置中选择了draft-hixie时才起作用.
是否有任何浏览器支持hybi规格?即使它是开发,它的确定.
解决方法
在WebSockets中支持非UTF-8(即二进制)编码可能会有一段时间.
我建议在客户端和服务器上使用base64编码/解码.所有支持WebSockets的浏览器都有window.atob(base64 decode)和window.btoa(base64 encode).大多数语言你可以编写一个WebSockets服务器,具有base64库(即python中的base64模块).
如果您想要传输二进制数据,那么可能在wsproxy中有趣的是noVNC,它是一个基于Web的VNC客户端. wsproxy(有一个C和python版本)是一个WebSockets到通用的TCP套接字代理.它base64对所有来往浏览器的流量进行编码/解码.您可以使用它从支持WebSockets的浏览器连接到任何类型的TCP端口.
注意,noVNC有一个基于base64编码/解码的Javascript实现,因为它信不信由,Javascript版本比atob / btoa稍快.
免责声明:我创建了noVNC.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。