我发现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中发送二进制数据?
答案 0 :(得分:1)
WebSockets的hybi 00 / hixie 76草案规范不包括最终版本中的许多功能,包括二进制消息。不幸的是,在hybi00浏览器中无法支持本机二进制websocket消息。
答案 1 :(得分:0)
'我不确定,但你可以试试:
websocket.send(ab.buffer);