我发现 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 中发送二进制数据?