【发布时间】:2011-07-29 07:30:22
【问题描述】:
据我所知,websockets 支持二进制数据传输。二进制支持错误is fixed.
那么,有没有支持二进制数据传输的 websocket 服务器? Socket.io 似乎错过了这个机会。也许还有其他人?
【问题讨论】:
标签: javascript html node.js websocket socket.io
据我所知,websockets 支持二进制数据传输。二进制支持错误is fixed.
那么,有没有支持二进制数据传输的 websocket 服务器? Socket.io 似乎错过了这个机会。也许还有其他人?
【问题讨论】:
标签: javascript html node.js websocket socket.io
在 WebSocket 服务器中支持二进制数据非常简单(实际上比 UTF-8 工作量少)。真正的问题是在浏览器中支持二进制数据类型。它正在开发中,但目前还没有可以支持发送和接收二进制类型(类型化数组、blob)的浏览器版本。
如果您现在需要在浏览器添加支持之前发送二进制数据,您可以尝试我的websockify python 服务器和 Javascript 客户端库。它使用 base64 编码通过网络传输二进制数据。它使用数字数组 (0-255) 来表示 Javascript 端的二进制数据,而不是类型化数组/blob。
一些链接:
【讨论】:
ws = new WebSocket("ws://localhost:12345"); if ("binaryType" in ws) { .... }; 在 Chrome 提供初始支持之前我曾抱怨过这个问题,但没有得到修复它的动力。
以下是具有“二进制消息”功能行的 WebSockets 实现(浏览器、客户端、服务器)的比较:
http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
目前(09/16/2011),支持二进制 WS 消息的浏览器有:
详细的测试报告和浏览器对比见:
【讨论】: