添加工会消息转发
This commit is contained in:
parent
c27567da9e
commit
b665f4aafa
@ -23,6 +23,7 @@ include_directories(
|
|||||||
/usr/include/glm
|
/usr/include/glm
|
||||||
../../third_party
|
../../third_party
|
||||||
../../third_party/behaviac/inc
|
../../third_party/behaviac/inc
|
||||||
|
../../third_party/recastnavigation/Recast/Include
|
||||||
../../third_party/recastnavigation/Detour/Include
|
../../third_party/recastnavigation/Detour/Include
|
||||||
../../third_party/recastnavigation/DetourTileCache/Include
|
../../third_party/recastnavigation/DetourTileCache/Include
|
||||||
.
|
.
|
||||||
@ -46,6 +47,10 @@ aux_source_directory(../../third_party/recastnavigation/Detour/Source
|
|||||||
SRC_LIST
|
SRC_LIST
|
||||||
)
|
)
|
||||||
|
|
||||||
|
aux_source_directory(../../third_party/recastnavigation/Recast/Source
|
||||||
|
SRC_LIST
|
||||||
|
)
|
||||||
|
|
||||||
aux_source_directory(../../third_party/recastnavigation/DetourTileCache/Source
|
aux_source_directory(../../third_party/recastnavigation/DetourTileCache/Source
|
||||||
SRC_LIST
|
SRC_LIST
|
||||||
)
|
)
|
||||||
|
@ -25,6 +25,12 @@ IMConn* IMConnMgr::GetConnByKey(const std::string& key)
|
|||||||
return itr != key_hash_.end() ? itr->second : nullptr;
|
return itr != key_hash_.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IMConn* IMConnMgr::GetConnByInstanceId(long long instance_id)
|
||||||
|
{
|
||||||
|
auto itr = id_hash_.find(instance_id);
|
||||||
|
return itr != id_hash_.end() ? itr->second : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
IMConn* IMConnMgr::RecreateIMConn(const std::string& host, int port)
|
IMConn* IMConnMgr::RecreateIMConn(const std::string& host, int port)
|
||||||
{
|
{
|
||||||
std::string key = host + ":" + a8::XValue(port).GetString();
|
std::string key = host + ":" + a8::XValue(port).GetString();
|
||||||
|
@ -27,6 +27,7 @@ class IMConnMgr : public a8::Singleton<IMConnMgr>
|
|||||||
void _SS_Pong(f8::MsgHdr& hdr, const ss::SS_Pong& msg);
|
void _SS_Pong(f8::MsgHdr& hdr, const ss::SS_Pong& msg);
|
||||||
|
|
||||||
IMConn* GetConnByKey(const std::string& key);
|
IMConn* GetConnByKey(const std::string& key);
|
||||||
|
IMConn* GetConnByInstanceId(long long instance_id);
|
||||||
IMConn* RecreateIMConn(const std::string& host, int port);
|
IMConn* RecreateIMConn(const std::string& host, int port);
|
||||||
void TraverseIMConn(std::function<bool (IMConn*)> func);
|
void TraverseIMConn(std::function<bool (IMConn*)> func);
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ void GuildMgr::_SS_MS_LoadGuild(f8::MsgHdr& hdr, const ss::SS_MS_LoadGuild& msg)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuildMgr::_SS_MS_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_MS_ForwardGuildCMMsg& msg)
|
void GuildMgr::_SS_IM_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildCMMsg& msg)
|
||||||
{
|
{
|
||||||
switch (hdr.msgid) {
|
switch (hdr.msgid) {
|
||||||
case cs::CMMessageId_e::_CMGuildCreate:
|
case cs::CMMessageId_e::_CMGuildCreate:
|
||||||
@ -230,7 +230,7 @@ Guild* GuildMgr::GetGuild(long long guild_id)
|
|||||||
void GuildMgr::ForwardGuildSMMsg(const ss::MFIMMsgConext& context,
|
void GuildMgr::ForwardGuildSMMsg(const ss::MFIMMsgConext& context,
|
||||||
const ::google::protobuf::Message& smmsg)
|
const ::google::protobuf::Message& smmsg)
|
||||||
{
|
{
|
||||||
ss::SS_MS_ForwardGuildSMMsg msg;
|
ss::SS_IM_ForwardGuildSMMsg msg;
|
||||||
*msg.mutable_context() = context;
|
*msg.mutable_context() = context;
|
||||||
smmsg.SerializeToString(msg.mutable_payload());
|
smmsg.SerializeToString(msg.mutable_payload());
|
||||||
MSConnMgr::Instance()->SendMsg(msg, 0);
|
MSConnMgr::Instance()->SendMsg(msg, 0);
|
||||||
|
@ -15,7 +15,7 @@ namespace ss
|
|||||||
{
|
{
|
||||||
class MFIMMsgConext;
|
class MFIMMsgConext;
|
||||||
class SS_MS_LoadGuild;
|
class SS_MS_LoadGuild;
|
||||||
class SS_MS_ForwardGuildCMMsg;
|
class SS_IM_ForwardGuildCMMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace google
|
namespace google
|
||||||
@ -41,7 +41,7 @@ class GuildMgr : public a8::Singleton<GuildMgr>
|
|||||||
void UnInit();
|
void UnInit();
|
||||||
|
|
||||||
void _SS_MS_LoadGuild(f8::MsgHdr& hdr, const ss::SS_MS_LoadGuild& msg);
|
void _SS_MS_LoadGuild(f8::MsgHdr& hdr, const ss::SS_MS_LoadGuild& msg);
|
||||||
void _SS_MS_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_MS_ForwardGuildCMMsg& msg);
|
void _SS_IM_ForwardGuildCMMsg(f8::MsgHdr& hdr, const ss::SS_IM_ForwardGuildCMMsg& msg);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _CMGuildCreate(const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg);
|
void _CMGuildCreate(const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg);
|
||||||
|
@ -96,6 +96,8 @@ void HandlerMgr::RegisterNetMsgHandlers()
|
|||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGroupDismiss);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGroupDismiss);
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGroupRename);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGroupRename);
|
||||||
|
|
||||||
|
RegisterNetMsgHandler(&immsghandler, &GuildMgr::_SS_IM_ForwardGuildCMMsg);
|
||||||
|
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildCreate);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildCreate);
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildJoin);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildJoin);
|
||||||
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildAgree);
|
RegisterNetMsgHandler(&wsmsghandler, &Player::_CMGuildAgree);
|
||||||
|
@ -174,3 +174,31 @@ void SyncHelper::SS_IM_FriendDeleteRequest_TimeOut(ss::SS_IM_FriendDeleteRequest
|
|||||||
event_data
|
event_data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SyncHelper::SendIMConnMsg(int instance_id, int msgid, ::google::protobuf::Message& msg)
|
||||||
|
{
|
||||||
|
IMConn* conn = IMConnMgr::Instance()->GetConnByInstanceId(instance_id);
|
||||||
|
if (conn) {
|
||||||
|
conn->SendMsg(msgid, msg);
|
||||||
|
} else {
|
||||||
|
int packlen = msg.ByteSize();
|
||||||
|
char* buff = nullptr;
|
||||||
|
if (packlen > 0) {
|
||||||
|
buff = (char*)malloc(packlen);
|
||||||
|
msg.SerializeToArray(buff, packlen);
|
||||||
|
}
|
||||||
|
App::Instance()->AddSocketMsg
|
||||||
|
(
|
||||||
|
SF_IMConn,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
msgid,
|
||||||
|
0,
|
||||||
|
buff,
|
||||||
|
packlen
|
||||||
|
);
|
||||||
|
if (buff) {
|
||||||
|
free(buff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -47,5 +47,14 @@ public:
|
|||||||
|
|
||||||
void BroadcastIMConnMsg(int msgid, ::google::protobuf::Message& msg);
|
void BroadcastIMConnMsg(int msgid, ::google::protobuf::Message& msg);
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void SendIMConnMsg(int intance_id, T& msg)
|
||||||
|
{
|
||||||
|
static int msgid = f8::Net_GetMessageId(msg);
|
||||||
|
SendIMConnMsg(msgid, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendIMConnMsg(int intance_id, int msgid, ::google::protobuf::Message& msg);
|
||||||
|
|
||||||
std::map<long long, timer_list*> pending_request_hash_;
|
std::map<long long, timer_list*> pending_request_hash_;
|
||||||
};
|
};
|
||||||
|
@ -41,4 +41,6 @@ enum SSMessageId_e
|
|||||||
_SS_IM_OnUserOffline = 1024;
|
_SS_IM_OnUserOffline = 1024;
|
||||||
_SS_IM_RandomUsersRequest = 1025;
|
_SS_IM_RandomUsersRequest = 1025;
|
||||||
_SS_IM_RandomUsersResponse = 1026;
|
_SS_IM_RandomUsersResponse = 1026;
|
||||||
|
_SS_IM_ForwardGuildCMMsg = 1027;
|
||||||
|
_SS_IM_ForwardGuildSMMsg = 1028;
|
||||||
}
|
}
|
||||||
|
@ -151,13 +151,13 @@ message SS_MS_LoadGroup
|
|||||||
optional int64 group_id = 1;
|
optional int64 group_id = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SS_MS_ForwardGuildCMMsg
|
message SS_IM_ForwardGuildCMMsg
|
||||||
{
|
{
|
||||||
optional MFIMMsgConext context = 1;
|
optional MFIMMsgConext context = 1;
|
||||||
optional bytes payload = 2;
|
optional bytes payload = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SS_MS_ForwardGuildSMMsg
|
message SS_IM_ForwardGuildSMMsg
|
||||||
{
|
{
|
||||||
optional MFIMMsgConext context = 1;
|
optional MFIMMsgConext context = 1;
|
||||||
optional bytes payload = 2;
|
optional bytes payload = 2;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user