我从 python 服务器通过 websocket 发送二进制数据:
data = struct.pack('!BI', 2, 1)
channel.send(channel.BINARY, data)
数据发送工作正常。在客户端javascript得到它是这样的:
onbinarydata: function(data) {
alert(data.byteLength);
>> 5
var array = new Uint8Array(data,0,1);
alert(array[0]);
>> 2
var array2 = new Uint32Array(data,1,5);
>> Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1
alert(array2[0]);
这怎么可能发生?字节长度减去字节偏移量是 4,BYTY_ELEMENT_SIZE 也是 4。第一个值被读取没有问题,但接下来总是引发错误,无论它是什么类型。即使我只像这样设置字节偏移
var array2 = new Uint32Array(data,1);
有错误。