如何在safari5中通过websocket发送二进制数据

时间:2013-10-16 02:43:37

标签: safari binary websocket

我发现safari 5.1正在使用websocket的草稿版本,我认为它是hybi-00。

我正在尝试使用以下代码发送二进制数据:

    var ab = new ArrayBuffer(64);
    var dv = new DataView(ab);
    dv.setUint32(0, 1);
    websock.send(ab);

但服务器收到包含“[object ArrayBuffer]”而不是二进制消息的文本消息。服务器收到的数据的十六进制转储是:

    00 5b 6f 62 6a 65 63 74 20 41 72 72 61 79 42 75     .[object.ArrayBu
    66 66 65 72 5d ff -- -- -- -- -- -- -- -- -- --     ffer].

显然,javascript将ArrayBuffer对象转换为字符串,并将字符串发送到服务器。

那么,我如何在ArrayBuffer中发送二进制数据?

2 个答案:

答案 0 :(得分:1)

WebSockets的hybi 00 / hixie 76草案规范不包括最终版本中的许多功能,包括二进制消息。不幸的是,在hybi00浏览器中无法支持本机二进制websocket消息。

答案 1 :(得分:0)

'我不确定,但你可以试试:

websocket.send(ab.buffer);