Html 用于二进制数据传输的websocket&;解码

Html 用于二进制数据传输的websocket&;解码,html,standards,w3c,websocket,Html,Standards,W3c,Websocket,我正在阅读规范和许多关于WebSocket使用的示例。几乎所有人都在谈论使用WebSocket的UTF-8或ascii消息传输 最新的Hybi websocket规范要求支持二进制传输 我还读到chrome支持hybi。但最新版本的Chrome7.0只有在pywebsocket配置中选中时才起作用 有任何浏览器支持hybi规范吗?即使它是dev,也可以。在WebSocket中支持非UTF-8(即二进制)编码之前可能需要一段时间 我建议在客户端和服务器上使用base64编码/解码。所有支持WebS

我正在阅读规范和许多关于WebSocket使用的示例。几乎所有人都在谈论使用WebSocket的UTF-8或ascii消息传输

最新的Hybi websocket规范要求支持二进制传输

我还读到chrome支持hybi。但最新版本的Chrome7.0只有在pywebsocket配置中选中时才起作用


有任何浏览器支持hybi规范吗?即使它是dev,也可以。

在WebSocket中支持非UTF-8(即二进制)编码之前可能需要一段时间

我建议在客户端和服务器上使用base64编码/解码。所有支持WebSocket的浏览器都有window.atob(base64解码)和window.btoa(base64编码)。您可能在其中编写WebSockets服务器的大多数语言都有base64库(即python中的base64模块)

如果您想要传输二进制数据,您可能会对附带的wsproxy感兴趣,它是一个基于web的VNC客户端。wsproxy(有C和python版本)是WebSockets到通用TCP套接字的代理。它对进出浏览器的所有流量进行编码/解码。您可以使用它从支持WebSocket的浏览器连接到任何类型的TCP端口

注意,noVNC有一个base64编码/解码的Javascript实现,因为不管你信不信,Javascript版本比atob/btoa稍微快一点


免责声明:我创建了noVNC。

更新:IETF-07 WebSockets协议草案已进入最后一次调用,并支持二进制帧。这里有一个关于API更改以添加二进制支持的bug:我想你现在已经知道了,但是作为对每个人的一般更新,Chrome Canary现在支持这个。