gamer的专栏

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.启动参数通过内存共享,本地,可以被其他程序访问到,也许直接被共享到集群了,没有深入去看

我们摇摇头说,困难其实没什么大不了。

gamer的专栏

相关文章:

你感兴趣的文章:

标签云: