这几天研究protocbuf,稍稍总结一下啰。网上关于as3用protobuf协议的还真是少哦。
1.如何将 xx.proto协议转成.as 文件,按照下面链接去做
http://blog.csdn.net/luna84/article/details/8696217
2 怎样用
后台怎样用我就不知道了,我又不会c++ java 或python(不过我打算学c++了)
在as3项目里面, 把转换好的as文件拷贝到项目,添加protobuf.swc 貌似有2种版本的protobuf.swc 文件,一种竟然提示override神马神马的错,换另一个就好了,没细细研究
代码片段:
var msg:ActionMessage = new ActionMessage();
var header:MessageHeader = new MessageHeader();
header.protocol = _em_client_message.WS_MSG_CLIENT_LOGIN_REQ; // protobuf协议里面为 enum枚举
/*
enum _em_client_message
{
WS_MSG_CLIENT_LOGIN_REQ =100;//客户端登陆请求 )
}
*/
var body:MessageBody = new MessageBody();
var loginMsg:_msg_login_req = new _msg_login_req(); //
loginMsg.userId = 223344;
loginMsg.userPass = "3ffb6de4117f57ac28e3a3bd09c3325d"; //3d5637807 MD5加密过
loginMsg.gameSiteid = 1;
/*
message _msg_login_req//登陆请求数据(CS)
{
required int32 user_id =1;//登陆时的用户id
required string user_pass =2;//登陆时的用户密码
required int32 game_siteid =3;//游戏类型标识位
}
*/
var msgData:ByteArray = new ByteArray();
msgData.endian = Endian.LITTLE_ENDIAN;
loginMsg.writeTo(msgData);
body.data = msgData;
msg.header=header;
msg.body=body;
sendData(msg);