王牌网络层类图
2018-03-27 16:39:27 0 举报
王牌项目网络层UML
作者其他创作
大纲/内容
Client
+ connection : Connection
+ Connect()+ SendReq()
Connection
- _rrframe : RequestResponseFrame- _gframe: GameMessageFrame- _baseframe: MessageBaseFrame
AttrClient,该类负责注册各类协议,具体实现在各个业务自己的partial class里面,脚本位置是Network/Netlayer/Comic/Gen。服务器有工具自动生成这类脚本对于Rep/Resp的协议由RegMsgPath() 注册提供一个XXXRequest(callback)方法供TionManager层调用,同时传入callback。其中会用到msg.req,是一个protobuf生成的数据对象对于Push的协议由RegPushPath() 注册Push协议提供一个OnXXXPush的属性,直接赋值Callback
TionManager,该类实现了网络连接相关以及业务逻辑的接口_attrClient 持有了客户端向游戏逻辑服务器的长连接,负责注册协议IsReady() 描述了当前的连接状态XXXReq() 是业务层的Request,会调用_attrClient的相关request方法。实现在各个业务自己的partial class里面,脚本位置处于Network/Gamelayer。一般情况下,由ConnectManager::RegisterHandler() 方法注册到协议发送队列XXXResp() 是业务的回调,尽可能的在这里只处理数据,UI和上层游戏逻辑交给ConnectManager注册的回调
MiniMessagePacker
TCPConnection
TCPConnection TCP连接底层
MiniMessagePacker 用于网络包的序列化和反序列化
RequestResponseFrame,用于解析Req/Resp类型数据包,此外还有两个使用较少的框架类(GameMessageFrame/MessageBaseFrame)mpk 使用MiniMessagePacker库,对包进行序列化和反序列化AddType 注册协议表的最底层实现
RequestResponseFrame
- mpk : MiniMessagePacker
GZipStream
AttrClient
+ OnXXXPush : Connection.OnMessageCallback
Client,AttrClient的基类,持有长连接,实现基础的收发connection 持有长连接Connect()和SendReq() 分别是建立连接和发送message
GZipStream 用于序列化反序列化网络包的时候,压缩和解压缩
Connection 网络连接的核心类,底层实现都在这里_rrframe、_gframe、_baseFrame 该类内聚了三个对象,分别实现Req/Resp、Content和Pingpong三个框架,用于解析三种不同行为的网络包StartRead()和Send()分别是网络包读、写的底层接口
TionManager
- _attrClient : AttrClient
+ Connect() / Disconnect()+ IsReady() : bool- OnAttrClientReadyCallback() / OnAttrClientDisconnectedCallback()+ XXXReq()
0 条评论
下一页