据我所知,websockets支持二进制数据传输。二进制支持的错误已修复。
那么,有支持二进制数据传输的websocket服务器吗?套接字。IO似乎错过了这个机会。也许还有其他的?
在WebSocket服务器中支持二进制数据是相当微不足道的(实际上比UTF-8工作要少)。真正的问题是在浏览器中支持二进制数据类型。它正在开发中,但到目前为止还没有浏览器版本可以支持发送和接收二进制类型(类型化数组,blob)。
如果你需要在浏览器添加支持之前发送二进制数据,你可以尝试我的websockify python服务器和Javascript客户端库。它使用base64编码在网络上传输二进制数据。它没有使用类型化数组/blob,而是使用数字数组(0-255)来表示Javascript端的二进制数据。
一些链接:- Mozilla bug #666349WebKit bug #65249(关于二进制数据支持的部分现在全部修复) IETF HyBi WebSockets协议v10
这是一个WebSockets实现(浏览器,客户端,服务器)的比较,有一个"二进制消息"的特征行:
http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations目前(2011年9月16日),支持二进制WS消息的浏览器是:
- Chrome 15或更高版本
- IE10 (Windows 8开发者预览版的一部分)
- Firefox 11或更高版本
有关详细的测试报告和浏览器比较,请参见:
http://autobahn.ws/testsuite/