通过对基础库的分析可以知道,客户端通过IClientSocket、IClientSocketSink和服务器通讯。
现在把问题集中起来,只分析客户端和服务器之间的接口,也就是IO
当前分析的模式是GamePlaza
CPlazaViewItem CRoomViewItem这两个实现了IClientSocketSink接口,也就是说他们能接受服务器消息;
IClientSocketSink能响应三个事件OnSocketConnect OnSocketRead OnSocketClose
主要的数据交换应该是依赖OnSocketRead
CPlazaViewItem
OnSocketRead
MDM_GP_LOGON //登陆消息
SUB_GP_LOGON_SUCCESS //登陆成功
CMD_GP_LogonSuccess
(接下来的叫扩展信息)
DTP_USER_ACCOUNTS //用户帐户
数据由DataDescribe描述
DTP_USER_PASS //用户密码
数据由DataDescribe描述
DTP_USER_GROUP_NAME //社团名字
数据由DataDescribe描述
SUB_GP_LOGON_ERROR //登陆失败
MDM_GP_SERVER_LIST //列表消息
SUB_GP_LIST_TYPE //类型信息
tagGameType数组
SUB_GP_LIST_KIND //种类消息
tagGameKind数组
SUB_GP_LIST_PROCESS //进程信息
tagGameProcess数组
SUB_GP_LIST_STATION //站点消息
tagGameStation数组
SUB_GP_LIST_SERVER //服务器房间
tagGameServer数组
SUB_GP_LIST_FINISH //列表发送完成
SUB_GP_LIST_CONFIG //列表配置
CMD_GP_ListConfig
MDM_GP_SYSTEM //系统消息
SUB_GP_VERSION //版本信息
CMD_GP_Version
CRoomViewItem
OnSocketRead
MDM_GR_LOGON //登录消息
SUB_GR_LOGON_SUCCESS //登录成功
SUB_GR_LOGON_ERROR //登录失败
SUB_GR_LOGON_FINISH //登录完成
MDM_GR_USER //用户消息
SUB_GR_USER_COME //用户进入
tagUserInfoHead
(附加)
DTP_USER_ACCOUNTS //用户帐户
数据由DataDescribe描述
DTP_USER_GROUP_NAME //社团名字
数据由DataDescribe描述
SUB_GR_USER_STATUS //用户状态
CMD_GR_UserStatus
SUB_GR_USER_SCORE //用户分数
CMD_GR_UserScore
SUB_GR_SIT_FAILED //坐下失败
CMD_GR_SitFailed
SUB_GR_USER_CHAT //用户聊天
CMD_GR_UserChat
SUB_GR_USER_WISPER //用户私语
CMD_GR_Wisper
SUB_GR_USER_INVITE //邀请玩家
CMD_GR_UserInvite
MDM_GR_INFO //配置信息
SUB_GR_SERVER_INFO //房间信息
CMD_GR_ServerInfo
SUB_GR_COLUMN_INFO //列表解释
CMD_GR_ColumnInfo
SUB_GR_CONFIG_FINISH //配置完成
MDM_GR_STATUS //状态信息
SUB_GR_TABLE_INFO //桌子信息
CMD_GR_TableInfo
SUB_GR_TABLE_STATUS //桌子状态
CMD_GR_TableStatus
MDM_GR_SYSTEM //系统消息
SUB_GR_MESSAGE //系统消息
CMD_GR_Message
MDM_GR_SERVER_INFO //房间信息
SUB_GR_ONLINE_COUNT_INFO //在线信息
tagOnLineCountInfo
MDM_GF_GAME //游戏消息
MDM_GF_FRAME //框架消息
IPC_SocketPackage