[]我用laya.websocket通信 二进制数据, 服务器对二进制数据进行解析,解析出来不是预期,请问我哪里写错了? 代码如下

var str = new String("大家好,这是websocket通信!");
            console.log("str.length*2:" + str.length*2);
            var b = new ArrayBuffer(20 + str.length*2);
            var dv = new DataView(b, 0);
            dv.setUint16(0, str.length*2, false);
            dv.setUint16(2, 0, false);
            dv.setUint16(4, 0, false);
            dv.setUint16(6, 0, false);
            dv.setUint16(8, 123, false);
            dv.setUint16(10, 0, false);
            dv.setUint32(12, 0, false);
            dv.setUint32(16, 0, false);
         
            console.log("befor new Uint16Array(b, 20, str.length)");
            var context = new Uint16Array(b, 20, str.length);
            for (var i=0, strLen=str.length*2; i<strLen; i++) {
               context = str.charCodeAt(i);
            }

            console.log("copy end");
            this.socket.send(b);
            console.log("send end");
            this.socket.flush();
已邀请:

moketao

赞同来自:

这是要多节省带宽资源才一个字节一个字节的自己写。。。
建议还是用 protobuf 压缩率未必比自己写的差。

要回复问题请先

商务合作
商务合作