[]websocket 中 protobuf 数据的发送与接收的具体方法是怎样的?
package test;
enum MSG_HEADER {
LOGIN_GAME = 0x00000001;
JOIN_GAME = 0x00000002;
EXIT_GAME = 0x00000003;
}
message LoginGame {
required string account = 1; // 账号
required string passwd = 2; // 密码
}
第一次使用protobuf与服务端通讯,有点疑惑。以往使用json格式的数据通讯时,可以将协议名称写入json里一并发送到服务端;当使用protobuf的时候如何将协议名称和协议内容一起发送到服务端呢?我的做法是这样子的:
private onAssetsLoaded(data:string):void{
var pack:any = this.ProtoBuf.loadProto(data).build("test");
var MSG_HEADER:any = pack.MSG_HEADER;
var byte:Laya.Byte = this.socket.output;
byte.writeInt32(MSG_HEADER.LoginGame);//和服务端约定好,前四个字节存放协议的名称
var login:any = new pack.LoginGame;
login.set("account","");
login.set("passwd","");
var buffer:any = login.encode().toBuffer();
byte.writeArrayBuffer(buffer);
this.socket.socket.flush();
}
请问我的做法对吗?一般来说TS项目如何正确的使用protobuf发送与解析websocket通讯数据?
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
Victor
赞同来自: Laya_XS
Laya_XS
赞同来自: