This commit is contained in:
aozhiwei 2020-05-03 22:40:46 +08:00
parent 4185df5829
commit 4a6cc07ed5
7 changed files with 40 additions and 2 deletions

View File

@ -126,3 +126,9 @@ void IMListener::MarkClient(unsigned short sockhandle, bool is_active)
{
tcp_listener_->MarkClient(sockhandle, is_active);
}
void IMListener::_SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg)
{
ss::SS_Pong pongmsg;
SendMsg(hdr.socket_handle, pongmsg);
}

View File

@ -6,6 +6,11 @@ namespace a8
class TcpListener;
}
namespace ss
{
class SS_Ping;
}
class IMListener : public a8::Singleton<IMListener>
{
private:
@ -34,6 +39,7 @@ class IMListener : public a8::Singleton<IMListener>
long long GetSendNodeNum();
long long GetSentBytesNum();
void _SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg);
private:
a8::TcpListener *tcp_listener_ = nullptr;
};

View File

@ -112,5 +112,6 @@ void WSListener::MarkClient(unsigned short sockhandle, bool is_active)
void WSListener::_SS_Ping(f8::MsgHdr& hdr, const ss::SS_Ping& msg)
{
ss::SS_Pong pongmsg;
SendProxyMsg(hdr.socket_handle, pongmsg);
}

View File

@ -14,6 +14,7 @@
#include "framework/cpp/netmsghandler.h"
#include "app.h"
#include "IMListener.h"
#include "WSListener.h"
#include "jsondatamgr.h"
#include "handlermgr.h"
@ -124,6 +125,7 @@ bool App::Init(int argc, char* argv[])
IMConnMgr::Instance()->Init();
MSConnMgr::Instance()->Init();
WSListener::Instance()->Init();
IMListener::Instance()->Init();
PlayerMgr::Instance()->Init();
a8::UdpLog::Instance()->Info("friend_imserver starting instance_id:%d pid:%d ",
@ -172,6 +174,7 @@ void App::UnInit()
{
a8::XPrintf("friend_imserver terminating instance_id:%d pid:%d\n", {instance_id, getpid()});
PlayerMgr::Instance()->UnInit();
IMListener::Instance()->UnInit();
WSListener::Instance()->UnInit();
IMConnMgr::Instance()->UnInit();
MSConnMgr::Instance()->UnInit();
@ -356,7 +359,7 @@ void App::DispatchMsg()
break;
case SF_IMServer:
{
ProcessIMServerMsg(hdr);
}
break;
case SF_IMConn:
@ -417,6 +420,23 @@ void App::ProcessWSProxyMsg(f8::MsgHdr& hdr)
}
}
void App::ProcessIMServerMsg(f8::MsgHdr& hdr)
{
f8::NetMsgHandler* handler = f8::GetNetMsgHandler(&HandlerMgr::Instance()->immsghandler,
hdr.msgid);
if (handler) {
switch (handler->handlerid) {
case HID_IMListener:
ProcessNetMsg(handler, IMListener::Instance(), hdr);
break;
default:
{
}
break;
}
}
}
void App::ProcessMasterServerMsg(f8::MsgHdr& hdr)
{
f8::NetMsgHandler* handler = f8::GetNetMsgHandler(&HandlerMgr::Instance()->msmsghandler,

View File

@ -43,6 +43,7 @@ private:
void ProcessIMMsg();
void ProcessWSProxyMsg(f8::MsgHdr& hdr);
void ProcessIMServerMsg(f8::MsgHdr& hdr);
void ProcessMasterServerMsg(f8::MsgHdr& hdr);
void ProcessTargetServerMsg(f8::MsgHdr& hdr);

View File

@ -4,6 +4,7 @@
#include "handlermgr.h"
#include "IMListener.h"
#include "WSListener.h"
#include "app.h"
#include "player.h"
@ -32,6 +33,8 @@ void HandlerMgr::UnInit()
void HandlerMgr::RegisterNetMsgHandlers()
{
RegisterNetMsgHandler(&immsghandler, &IMListener::_SS_Ping);
RegisterNetMsgHandler(&wsmsghandler, &WSListener::_SS_Ping);
RegisterNetMsgHandler(&wsmsghandler, &PlayerMgr::_SS_WSP_SocketDisconnect);

View File

@ -23,6 +23,7 @@ class HandlerMgr : public a8::Singleton<HandlerMgr>
f8::NetMsgHandlerObject wsmsghandler;
f8::NetMsgHandlerObject msmsghandler;
f8::NetMsgHandlerObject immsghandler;
void ProcGMMsg(unsigned long saddr, int sockhandle,
const std::string& url, const std::string& querystr);