This commit is contained in:
aozhiwei 2019-12-11 16:56:58 +08:00
parent 646ec15f5a
commit a68691dc1f
2 changed files with 52 additions and 1 deletions

View File

@ -1,4 +1,4 @@
#include <a8/a8.h>
#include "precompile.h"
#include "framework/cpp/protoutils.h"
@ -38,11 +38,18 @@ namespace f8
return 0;
}
std::string msgid_enum_name;
#ifdef MATCHVS
if (msgname[0] == 'C' && msgname[1] == 'M') {
msgid_enum_name = "kingsomevs.CMMessageId_e";
} else if (msgname[0] == 'S' && msgname[1] == 'M') {
msgid_enum_name = "kingsomevs.SMMessageId_e";
#else
if (msgname[0] == 'C' && msgname[1] == 'M') {
msgid_enum_name = "cs.CMMessageId_e";
} else if (msgname[0] == 'S' && msgname[1] == 'M') {
msgid_enum_name = "cs.SMMessageId_e";
} else if (msgname[0] == 'S' && msgname[1] == 'S') {
#endif
msgid_enum_name = "ss.SSMessageId_e";
} else {
assert(false);
@ -78,6 +85,19 @@ namespace f8
msg.SerializeToArray(buff + sizeof(PackHead), packlen);
}
void Net_PackMsgOld(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out)
{
int packlen = msg.ByteSize();
out.resize(sizeof(PackHeadOld) + packlen);
char* buff = (char*)out.data();
PackHeadOld* head = (PackHeadOld*)buff;
head->packlen = packlen;
head->msgid = msgid;
head->magiccode = MAGIC_CODE;
msg.SerializeToArray(buff + sizeof(PackHeadOld), packlen);
}
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned seqid, unsigned short msgid,
::google::protobuf::Message& msg)
{
@ -151,6 +171,22 @@ namespace f8
return sizeof(PackHead) + packlen;
}
int Net_SendMsgOld(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg)
{
int packlen = msg.ByteSize();
char* buff = (char*)malloc(sizeof(PackHeadOld) + packlen);
PackHeadOld* head = (PackHeadOld*)buff;
head->packlen = packlen;
head->msgid = msgid;
head->magiccode = MAGIC_CODE;
msg.SerializeToArray(buff + sizeof(PackHeadOld), packlen);
tcp_listener->SendClientMsg(socket_handle, buff, sizeof(PackHeadOld) + packlen);
free(buff);
return sizeof(PackHeadOld) + packlen;
}
int Net_SendBigMsg(a8::TcpListener* tcp_listener, unsigned short socket_handle, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg)
{

View File

@ -18,6 +18,14 @@ namespace a8
namespace f8
{
//老消息头部(matchvs)
struct PackHeadOld
{
unsigned short packlen;
unsigned short msgid;
unsigned int magiccode;
};
//普通消息头部
struct PackHead
{
@ -88,11 +96,16 @@ namespace f8
MsgHdr* Clone();
};
#ifdef MATCHVS
const unsigned int MAGIC_CODE = 0xAABBCCAA;
#else
const unsigned short MAGIC_CODE = (((unsigned short)'S') << 8) | ((unsigned short)'K');
#endif
int Net_GetMessageId(::google::protobuf::Message& msg);
void Net_PackMsg(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out);
void Net_PackMsgOld(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out);
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg);
int Net_SendMsg(a8::TcpClient2* tcp_client, unsigned int seqid,
@ -103,6 +116,8 @@ namespace f8
const char* msgbody, int msgbody_len);
int Net_SendMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg);
int Net_SendMsgOld(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg);
int Net_SendBigMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle, unsigned int seqid,
unsigned short msgid, ::google::protobuf::Message& msg);
int Net_BroadcastMsg(a8::TcpListener* tcp_tlistener, unsigned int seqid,