-
var Message = Builder.build("game.service.data.MsgLoginData");
-
var loginMessage = new Message();
-
loginMessage.set("UserAccount","webTest");
-
loginMessage.set("UserPassWord","123456");
-
var msgBuf = loginMessage.<span style="color:#ff0000;">encode().toBuffer()</span>;
1.数据打包
在protobuf数据结构填写完成后,即可调用encode().toBuffer()将对象转换为ArrayBuffer对象,使用websockt发送数据即可
-
var Message = Builder.build("game.service.data.MsgLoginResult");
-
var msg = Message.decode(messageBuff);
-
if(cc.sys.isNative){
-
webSocket.onDataReceived(event.data);
-
}else {
-
var fileReader = new FileReader();
-
fileReader.onload = function(progressEvent) {
-
var arrayBuffer = this.result; // arrayBuffer即为blob对应的arrayBuffer
-
webSocket.onDataReceived(arrayBuffer);
-
};
-
fileReader.readAsArrayBuffer(event.data);
-
}
2.数据接收,数据接收有一个需要注意,需要判断是原生环境还是浏览器环境,如果是浏览器环境websocket收到的data将是BLOB类型,需要将BLOB类型转换为ArrayBuffer,
如果是原生环境,直接使用即可
转载。 https://blog.csdn.net/wzh200x/article/details/51859483