Files
mir_server/server/SessionServer/SessionCenter.h

84 lines
2.9 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _CENTER_SENDER_H_
#define _CENTER_SENDER_H_
//跨平台连接会话中心服
//与会话中心服消息定义
typedef enum eCommonSessionMsgCmd
{
cSendSpid = 50, //发送spgid给会话中心服
cRequestTranPlatform = 2, //请求跨平台
sRecvRequsestPlatform = 1, //收到返回请求跨平台消息
};
//class CNetworkDataHandler;
class CCustomJXClientSocket;
class CSSManager;
class CSessionCenter:
public CCustomJXClientSocket
{
public:
CSessionCenter();
CSessionCenter(jxSrvDef::SERVERTYPE ServerType,INT ServerIndex,char* ServerName,CSSManager *lpSSManager);
~CSessionCenter();
VOID SetServerName(LPCTSTR sServerName);
//连接会话中心服
void OnSendConnectCommonPlatform(LPCTSTR sIp,int nPort);
//发送给会话中心判断是否可以跨服
void OnRequesTranCommonPlatform(CDataPacketReader &inPacket);
//收到回话中心服返回是否可以跨服的消息
void OnRecvRequsetCommonPlat(CDataPacketReader &inPacket);
//跨平台登陆检查用户密码
void CheckPlatformUserPassword(CDataPacketReader &reader);
int CheckPlatformUserValid(PCHAR name, PCHAR passwd,GLOBALSESSIONOPENDATA & sessiDonata,PCHAR md5,PCHAR sCurrentTime,bool checkMd5,bool bCommonSrvLogin,PCHAR iIndentity,bool &isWhiteIpLogin);
//向指定ID的逻辑户端发送消息消息将被立刻追加到客户端发的发送缓冲中。数据包必须是完成的格式包含包头和包尾
int SendSSCommonMsg(const int nServerIndex, LPCSTR sMsg, const size_t dwSize);
//请求返回原来逻辑服
void OnReqestRawServer(CDataPacketReader &reader);
protected:
/*** 子类需覆盖的函数集 ***/
/* 处理单个通信数据包
* nCmd
* inPacket
*/
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
/*** 下列函数为子类可能有必要覆盖的函数集 ***/
/* ★查询本地服务器的类型,以便正确的发送注册数据 */
virtual jxSrvDef::SERVERTYPE getLocalServerType();
/* ★查询本地服务器的名称,以便正确的发送注册数据 */
virtual LPCSTR getLocalServerName();
/* ★查询本地服务器ID以便正确的发送注册数据默认的返回值是0 */
virtual int getLocalServerIndex();
//提供向最外层逻辑通知连接建立的事件
virtual VOID OnConnected();
private:
jxSrvDef::SERVERTYPE ServerType; //服务器类型值为SERVERTYPE枚举类型中的枚举值
INT ServerIndex; //服务器唯一编号(服务器编号仅对游戏服务器有意义)
CHAR ServerName[128]; //服务器名称需包含0终止符
char sCommonPaltformIp[64]; //连接中心会话服的ip
int nCommonPort; //连接中心会话服的端口
CSSManager* m_pSManager; //所属会话管理器
CSQLConenction* m_pSqlConect; //数据库连接程序
};
#endif