NetGame各模块间的网络接口.docx
《NetGame各模块间的网络接口.docx》由会员分享,可在线阅读,更多相关《NetGame各模块间的网络接口.docx(48页珍藏版)》请在冰豆网上搜索。
NetGame各模块间的网络接口
NetGame各模块间的网络接口
CenterServer、MainServer、LocalServer之间不直接通信,都只跟Client通信。
所有通信都采用主机字节序,不进行网络字节序的转换,所以只能兼容X86系列CPU。
消息流图:
DWORD:
unsignedint,32bits
WORD:
unsignedshort,16bits
BYTE:
unsignedchar,8bits
CHAR(char):
signedchar,8bits
longint:
signedlongint,32bits
ULONG:
unsignedlongint,32bits
__int64:
twoofsignedint,64bits
int:
signedint,32bits
uint:
unsignedint,32bits
UINT:
unsignedint,32bits
LONG:
signedlongint,32bits
消息格式:
消息头(参见下面的消息头),20字节
消息体(见各具体接口),可变长
消息头:
名字
大小
说明
备注
uMessageSize
DWORD
数据包大小(包含头部)
bMainID
DWORD
消息类型
参考各模块
bAssistantID
DWORD
消息子类型
参考各模块
bHandleCode
DWORD
处理代码
参考各模块
bReserve
DWORD
保留
CenterServer和Client之间的接口
消息类型:
名字
值
说明
消息子类型名字
备注
MDM_GP_REQURE
_GAME_PARA
MDM_GP_LIST+1
请求游戏全局参数
MDM_GP_LIST=101
MDM_CONNECT
1
连接消息
ASS_NET_TEST
ASS_CONNECT_SUCCESS
消息子类型:
名字
值
说明
消息类型名字
备注
ASS_NET_TEST
1
网络测试
MDM_CONNECT
ASS_CONNECT_SUCCESS
3
连接成功
MDM_CONNECT
处理代码:
游戏全局参数请求消息
消息方向:
Clent-->CenterServer
消息类型:
MDM_GP_REQURE_GAME_PARA
消息子类型:
无
消息体:
名字
大小
说明
备注
游戏全局参数响应消息
消息方向:
CenterServer-->Client
消息类型:
MDM_GP_REQURE_GAME_PARA
消息子类型:
无
消息体:
名字
大小
说明
备注
m_iVer
DWORD
客户端版本号
MainSvrList
char[255]
主服务器IP地址
Reserved
BYTE
保留
因为前后都是DWORD,所以用这个凑成DWORD倍数
MainSvrPort
DWORD
主服务器端口号
m_strWeb
char[50]
主页WEB地址
m_strShow
char[50]
个人秀的WEB地址
m_strFrameAD
char[50]
主框架广告WEB地址
m_strDeskAD
char[50]
桌面广告WEB地址
网络测试KeepAlive消息
消息方向:
Clent-->CenterServer和CenterServer-->Client(发送给所有用户)
消息类型:
MDM_CONNECT
消息子类型:
ASS_NET_TEST
消息体:
名字
大小
说明
备注
连接成功消息
消息方向:
CenterServer-->Client
消息类型:
MDM_CONNECT
消息子类型:
ASS_CONNECT_SUCCESS
消息体:
名字
大小
说明
备注
MainServer和Client之间的接口
消息类型:
名字
值
说明
消息子类型名字
备注
MDM_CONNECT
1
连接消息
ASS_NET_TEST
ASS_CONNECT_SUCCESS
MDM_GP_LOGON
100
大厅登录
ASS_GP_LOGON_BY_NAME
ASS_GP_LOGON_BY_ACC
ASS_GP_LOGON_BY_MOBILE
ASS_GP_LOGON_REG
ASS_GP_LOGON_SUCCESS
ASS_GP_LOGON_ERROR
MDM_GP_LIST
101
游戏列表
ASS_GP_LIST_KIND
ASS_GP_LIST_NAME
ASS_GP_LIST_ROOM
ASS_GP_LIST_COUNT
ASS_GP_ROOM_LIST_PEOCOUNT
消息子类型:
名字
值
说明
消息类型名字
备注
ASS_NET_TEST
1
网络测试
MDM_CONNECT
ASS_CONNECT_SUCCESS
3
连接成功
MDM_CONNECT
ASS_GP_LOGON_BY_NAME
1
通过用户名登录
MDM_GP_LOGON
ASS_GP_LOGON_BY_ACC
2
通过用户ACC登录
MDM_GP_LOGON
ASS_GP_LOGON_BY_MOBILE
3
通过用户手机登录
MDM_GP_LOGON
ASS_GP_LOGON_REG
4
用户注册
MDM_GP_LOGON
ASS_GP_LOGON_SUCCESS
5
登录成功
MDM_GP_LOGON
ASS_GP_LOGON_ERROR
6
登录失败
MDM_GP_LOGON
ASS_GP_LIST_KIND
1
得到游戏类型列表
MDM_GP_LIST
ASS_GP_LIST_NAME
2
得到游戏名字列表
MDM_GP_LIST
ASS_GP_LIST_ROOM
3
得到游戏房间列表
MDM_GP_LIST
ASS_GP_LIST_COUNT
4
得到游戏人数列表
MDM_GP_LIST
ASS_GP_ROOM_LIST_PEOCOUNT
5
得到房间游戏人数列表
MDM_GP_LIST
处理代码:
名字
值
说明
对应消息类型
对应消息子类型
ERR_GP_ERROR_UNKNOW
0
未知错误
MDM_GP_LOGON
所有
ERR_GP_LOGON_SUCCESS
1
登录成功
MDM_GP_LOGON
所有
ERR_GP_USER_NO_FIND
2
登录名字错误
MDM_GP_LOGON
所有
ERR_GP_USER_PASS_ERROR
3
用户密码错误
MDM_GP_LOGON
所有
ERR_GP_USER_VALIDATA
4
用户帐号禁用
MDM_GP_LOGON
所有
ERR_GP_USER_IP_LIMITED
5
登录IP禁用
MDM_GP_LOGON
所有
ERR_GP_USER_EXIST
6
用户已经存在
MDM_GP_LOGON
所有
ERR_GP_PASS_LIMITED
7
密码禁止校验
MDM_GP_LOGON
所有
ERR_GP_IP_NO_ORDER
8
不是指定地址
MDM_GP_LOGON
所有
ERR_GP_LIST_PART
9
部分游戏列表
MDM_GP_LOGON
所有
ERR_GP_LIST_FINISH
10
全部游戏列表
MDM_GP_LOGON
所有
连接成功消息
消息方向:
MainServer-->Client
消息类型:
MDM_CONNECT
消息子类型:
ASS_CONNECT_SUCCESS
消息体:
名字
大小
说明
备注
网络测试KeepAlive消息
消息方向:
Client-->MainServer和MainServer-->Client(发送给所有用户)
消息类型:
MDM_CONNECT
消息子类型:
ASS_NET_TEST
消息体:
名字
大小
说明
备注
通过用户名字登录消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_BY_NAME
消息体:
名字
大小
说明
备注
szName
char[21]
登录名字
TML_SN
char[128]
数字签名
szMD5Pass
char[33]
登录密码
reserved1
BYTE[2]
保留
因为前面是char,后面是int,所以用这个凑成DWORD倍数
gsqPs
int
通过ACC登录消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_BY_ACC
消息体:
名字
大小
说明
备注
dwAccID
_int64
登录ACC
szMD5Pass
char[33]
登录密码
reserved
BYTE[3]
保留
因为前面是char,所以用这个凑成DWORD倍数
通过手机登录消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_BY_MOBILE
消息体:
名字
大小
说明
备注
dwMobile
_int64
登录手机号
szMD5Pass
char[33]
登录密码
reserved
BYTE[3]
保留
因为前面是char,所以用这个凑成DWORD倍数
用户注册消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_REG
消息体:
名字
大小
说明
备注
bBoy
BYTE
是否男性
bLogoID
BYTE
用户图像ID
szName
char[21]
用户登录名
szMD5Pass
char[33]
登录密码
szRegSQL
char[210]
用户注册附加信息SQL
登录成功结果消息
消息方向:
Client<--MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_SUCCESS
消息体:
名字
大小
说明
备注
dwUserID
longint
用户ID
dwGamePower
longint
游戏权限
dwMasterPower
longint
管理权限
reserved
DWORD
保留
因为前面是int,后面是int64,所以用这个凑成int64倍数
dwMobile
_int64
手机号码
dwAccID
_int64
ACC号码
dwLastLogonIP
ULONG
上次登录IP
dwNowLogonIP
ULONG
本次登录IP
bLogoID
BYTE
用户头像
szName
char[21]
登录名字
TML_SN
char[128]
数字签名
szMD5Pass
char[33]
登录密码
reserved1
BYTE
保留1
登录失败结果消息
消息方向:
Client<--MainServer
消息类型:
MDM_GP_LOGON
消息子类型:
ASS_GP_LOGON_ERROR
消息体:
名字
大小
说明
备注
得到游戏类型列表消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_KIND
消息体:
名字
大小
说明
备注
游戏类型列表响应消息
消息方向:
Client<--MainServer
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_KIND
消息体:
名字
大小
说明
备注
uSize
UINT
数据大小
bDataType
UINT
类型标志
uKindID
UINT
游戏类型ID
szKindName
char[15]
游戏类型名字
reserved
BYTE
保留
凑成int倍数
说明:
有多个游戏类型的话,则这个消息体从uSize到reserved进行重复。
游戏名字列表消息
消息方向:
Client<--MainServer
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_NAME
消息体:
名字
大小
说明
备注
uSize
UINT
数据大小
bDataType
UINT
类型标志
uKindID
UINT
游戏类型ID
uNameID
UINT
游戏名字ID
szGameName
char[15]
游戏名字
szGameProcess
char[21]
游戏进程名
m_uOnLineCount
UINT
在线人数
说明:
有多个游戏名字的话,则这个消息体从uSize到m_uOnLineCount进行重复。
游戏房间列表消息
消息方向:
Client-->MainServer
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_ROOM
消息体:
名字
大小
说明
备注
uKindID
UINT
游戏类型ID
uNameID
UINT
游戏名字ID
游戏房间列表响应消息
消息方向:
Client<--MainServer
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_ROOM
消息体:
名字
大小
说明
备注
uKindID
UINT
游戏类型ID
uNameID
UINT
游戏名字ID
uSize
UINT
数据大小
bDataType
UINT
类型标志
uComType
UINT
游戏类型
uKindID
UINT
游戏类型ID
uNameID
UINT
游戏名字ID
uRoomID
UINT
游戏房间ID
uPeopleCount
UINT
游戏在线人数
uDeskPeople
UINT
每桌游戏人数
uDllVer
UINT
游戏DLL版本
uDeskCount
UINT
桌子数目
uServicePort
UINT
大厅服务端口
szServiceIP
char[25]
本地服务器IP地址
szGameRoomName
char[31]
游戏房间名称
说明:
有多个游戏房间的话,则这个消息体从uSize到szGameRoomName进行重复。
游戏人数列表消息
消息方向:
Client<--MainServer(发送给所有用户)
消息类型:
MDM_GP_LIST
消息子类型:
ASS_GP_LIST_COUNT或ASS_GP_ROOM_LIST_PEOCOUNT
消息体:
名字
大小
说明
备注
uID
UINT
用户ID
uOnLineCount
UINT
在线人数
说明:
有多个用户的话,则这个消息体从uID到uOnLineCount进行重复。
LocalServer和Client之间的接口
消息类型:
名字
值
说明
消息子类型名字
备注
MDM_CONNECT
1
连接消息
ASS_NET_TEST
ASS_CONNECT_SUCCESS
MDM_GR_LOGON
100
大厅登录
ASS_GR_LOGON_BY_ID
ASS_GR_LOGON_SUCCESS
ASS_GR_LOGON_ERROR
ASS_GR_SEND_FINISH
MDM_GR_USER_LIST
101
用户列表
ASS_GR_ONLINE_USER
ASS_GR_NETCUT_USER
ASS_GR_DESK_STATION
MDM_GR_USER_ACTION
102
用户动作
ASS_GR_USER_UP
ASS_GR_USER_SIT
ASS_GR_WATCH_UP
ASS_GR_WATCH_SIT
ASS_GR_USER_COME
ASS_GR_USER_LEFT
ASS_GR_USER_CUT
ASS_GR_SIT_ERROR
MDM_GR_ROOM
103
房间信息
ASS_GR_NORMAL_TALK
ASS_GR_HIGH_TALK
ASS_GR_USER_AGREE
ASS_GR_GAME_BEGIN
ASS_GR_GAME_END
ASS_GR_USER_POINT
ASS_GR_SHORT_MSG
ASS_GR_ROOM_SET
ASS_GR_INVITEUSER
ASS_GR_USER_EXCHENGE
MDM_GR_MATCH_INFO
104
比赛信息
ASS_GR_MATCH_USER
ASS_GR_MATCH_DELETE
MDM_GR_MANAGE
105
管理信息
ASS_GR_CUT_USER
ASS_GR_WARN_MSG
ASS_GR_POWER_SET
MDM_GR_MESSAGE
106
消息信息
ASS_GR_SYSTEM_MESSAGE
MDM_GM_GAME_FRAME
150
框架消息
ASS_GM_GAME_INFO
ASS_GM_GAME_STATION
ASS_GM_FORCE_QUIT
ASS_GM_NORMAL_TALK
ASS_GM_HIGH_TALK
ASS_GM_WATCH_SET
MDM_GM_MESSAGE
151
信息消息
ASS_GM_SYSTEM_MESSAGE
MDM_GM_GAME_NOTIFY
1
游戏消息
ASS_GM_AGREE_GAME
ASS_GM_TUOGUAN
消息子类型:
名字
值
说明
消息类型名字
备注
ASS_GR_LOGON_BY_ID
5
通过用户ID登陆
MDM_GR_LOGON
ASS_GR_LOGON_SUCCESS
2
登陆成功
MDM_GR_LOGON
ASS_GR_LOGON_ERROR
3
登陆失败
MDM_GR_LOGON
ASS_GR_SEND_FINISH
4
登陆完成
MDM_GR_LOGON
ASS_GR_ONLINE_USER
1
在线用户
MDM_GR_USER_LIST
ASS_GR_NETCUT_USER
2
断线用户
MDM_GR_USER_LIST
ASS_GR_DESK_STATION
3
桌子状态
MDM_GR_USER_LIST
ASS_GR_USER_UP
1
用户起来
MDM_GR_USER_ACTION
ASS_GR_USER_SIT
2
用户坐下
MDM_GR_USER_ACTION
ASS_GR_WATCH_UP
3
旁观起来
MDM_GR_USER_ACTION
ASS_GR_WATCH_SIT
4
旁观坐下
MDM_GR_USER_ACTION
ASS_GR_USER_COME
5
用户进入
MDM_GR_USER_ACTION
ASS_GR_USER_LEFT
6
用户离开
MDM_GR_USER_ACTION
ASS_GR_USER_CUT
7
用户断线
MDM_GR_USER_ACTION
ASS_GR_SIT_ERROR
8
坐下错误
MDM_GR_USER_ACTION
ASS_GR_NORMAL_TALK
1
普通聊天
MDM_GR_ROOM
ASS_GR_HIGH_TALK
2
高级聊天
MDM_GR_ROOM
ASS_GR_USER_AGREE
3
用户同意
MDM_GR_ROOM
ASS_GR_GAME_BEGIN
4
游戏开始
MDM_GR_ROOM
ASS_GR_GAME_END
5
游戏结束
MDM_GR_ROOM
ASS_GR_USER_POINT
6
用户分数
MDM_GR_ROOM
ASS_