关于自定义协议的问题,大端转小端 网络字节序

jermine

根据官方文档  http://doc.workerman.net/protocols/example.html
客户端传输的数据包样本:1001{"userName":"okXU70-dcPj8wBF4-Da4xhhfQXfs","pass":"123456","loginKey":"R2A4PF34"}

其中t是1001;i是{"userName":"okXU70-dcPj8wBF4-Da4xhhfQXfs","pass":"123456","loginKey":"R2A4PF34"}

this.bytes.endian = Laya.Byte.BIG_ENDIAN,
this.bytes.writeUTFBytes(i),
this.sendBytes.writeInt32(this.bytes.length + 4),
this.sendBytes.writeInt32(t),
this.sendBytes.writeArrayBuffer(this.bytes.buffer),
this.socket.send(this.sendBytes.buffer),

 
直接复制官方例子二的协议实现代码,但是终端报错了
 
 

2878 4 0
4个回答

damao

截图里是websocket协议,你发的不符合websocket协议吧

  • 暂无评论
walkor

对,服务端使用的websocket协议,客户端不是按照websocket协议发数据导致

  • 暂无评论
jermine

利用官方自带的协议 use Workerman\Protocols\Websocket
接收到的数据如下图,有办法将包头的乱码解释成正常的数字吗?乱码部分正确的解释是1001

  • 暂无评论
walkor

$int_array = unpack('Nint1/Nint2', $data);
返回的是个数组,里面包含了1001

年代过于久远,无法发表回答
🔝