OnGateWay2ManagerSession(来自管理器的数据,如果是需要转发给客户端的数据,,会包含有客户端SessionId)协议概览:
网关管理服务器 协议:
enum EGWMgrMsgType
{
GWMMT_Msg,// Route server msg to clients.
GWMMT_MsgAll,// Route server msg to all clients.
GWMMT_Droped,// *A client has been droped by manager( actively or disconnect ack ).
GWMMT_DropedDiscard,// *A client has been droped by manager( actively or disconnect ack ).
GWMMT_Shutdown,// Shutdown gateway server.
GWMMT_Max,
};
GWMMT_Msg: 转发消息到指定客户端
GWMMT_MsgAll: 转发广播消息到全部客户端
GWMMT_Droped: 网关管理器T掉指定客户端
GWMMT_DropedDiscard: 网关管理器T掉指定客户端
GWMMT_Shutdown: 关闭网关服务器
—————————————————————————————
网关服务器 协议:
enum EGWSVMsgType
{
GWSMT_CLJoin,// New client join.
GWSMT_CLDisconnected,// Client disconnected.
GWSMT_Msg,// Route client message to server.
GWSMT_Ping,// gateway ping message to server.
GWSMT_Max,
};
GWSMT_CLJoin: 新连接客户端
GWSMT_CLDisconnected: 客户端连接断开
GWSMT_Msg: 将客户端的消息转发到服务器
GWSMT_Ping: 网关服务器到逻辑服务器的ping
———————————————————————————–
网关服务器消息头:
struct GWMsgHdr
{
GWMsgHdr( u_int type, u_int len ):type_( type ), data_len_(len){}
u_inttype_;// Msg type.
u_intdata_len_;//
};
————————————————————————————
网关上报给网关管理器的自身信息
struct GWLocalInfo // 监听客户端连接的endpoint
{
u_intaddr_;// Gateway listen address.
u_shortport_;
};
————————————————————————————
网关从网关管理器接受的信息
struct GWInfo
{
u_intid_;// Gateway server id.
u_intcl_num_;// Client num.
};设计特点:
1.启动参数通过内存共享,本地,可以被其他程序访问到,也许直接被共享到集群了,没有深入去看
我们摇摇头说,困难其实没什么大不了。