workerman 接收二进制乱码

jermine

客户端发送给workerman的代码,其中参数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),

服务端接口才是websocket协议public function onMessage($connection, $data)
{echo $data."\n";} 

注:可以排除是终端字符集引起的,因为保存成txt也是乱码
_我就是需要根据json前的数据返回给前端不同的内容,现在php根本不能识别json前的数据_

4005 1 0
1个回答

six

前面是一些自定义的数据包包头,是二进制的,乱码是正常的。
看起来包头长度是固定的,把包头忽略只截取包体部分,忽略包头

  • jermine 2018-10-31

    我就是需要根据json前的数据返回给前端不同的内容,现在php根本不能识别json前的数据

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