Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebSocket和二进制数据_Javascript_Html_Node.js_Websocket_Socket.io - Fatal编程技术网

Javascript WebSocket和二进制数据

Javascript WebSocket和二进制数据,javascript,html,node.js,websocket,socket.io,Javascript,Html,Node.js,Websocket,Socket.io,据我所知,WebSocket支持二进制数据传输。二进制支持错误 那么,是否有支持二进制数据传输的websocket服务器?Socket.io似乎错过了这个机会。也许还有其他的吗?在WebSocket服务器中支持二进制数据非常简单(比UTF-8实际做的工作要少)。真正的问题是在浏览器中支持二进制数据类型。它正在开发中,但到目前为止,还没有浏览器版本能够支持发送和接收二进制类型(类型化数组、blob) 如果您现在需要在浏览器添加支持之前发送二进制数据,可以尝试我的python服务器和Javascri

据我所知,WebSocket支持二进制数据传输。二进制支持错误


那么,是否有支持二进制数据传输的websocket服务器?Socket.io似乎错过了这个机会。也许还有其他的吗?

在WebSocket服务器中支持二进制数据非常简单(比UTF-8实际做的工作要少)。真正的问题是在浏览器中支持二进制数据类型。它正在开发中,但到目前为止,还没有浏览器版本能够支持发送和接收二进制类型(类型化数组、blob)

如果您现在需要在浏览器添加支持之前发送二进制数据,可以尝试我的python服务器和Javascript客户端库。它使用base64编码通过线路传输二进制数据。它在Javascript端使用数字数组(0-255)来表示二进制数据,而不是类型化数组/blob

一些链接:

  • (关于二进制数据支持的部分现在都已修复)

以下是WebSockets实现(浏览器、客户端、服务器)的比较,这些实现具有“二进制消息”的功能行:

目前(2011年9月16日),支持二进制WS消息的浏览器有:

  • 铬15或更高
  • IE10(Windows 8开发者预览版的一部分)
  • Firefox11或更高版本
有关详细的测试报告和浏览器比较,请参见:


所以现代浏览器都不支持二进制消息:(对于Firefox/Chrome,我想他们支持二进制文件还需要几个月的时间。Chrome刚刚获得了对二进制消息的支持:是的,就在那里。我已经更新了WebSockets测试套件报告,包括Chrome和不同版本的Firefox,以反映:二进制支持在最近的Chrome版本中。Mozil终于有了行动la front和我希望下一个Aurora(alpha)版本的Mozilla也会有支持。我怀疑IE 10也有支持,但我还没有直接研究过。@kanaka你知道有没有办法查询浏览器的二进制支持?看起来FF10不支持二进制帧,只是默默地丢弃了“坏的”frames.@jalf,不幸的是,没有干净简单的方法。我知道的唯一对象检测方法是实例化一个假的WebSocket对象,然后查看它是否具有binaryType属性:
ws=newWebSocket(“ws://localhost:12345”);if(“binaryType”在ws中){……}
在Chrome提供初始支持之前,我就抱怨过这一点,但没有动力去修复它。