84 lines
2.9 KiB
C++
84 lines
2.9 KiB
C++
#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 |