【COCOS2DX-游戏开发之二六】 手游短连接
来源:互联网 发布:互盾数据恢复注册机 编辑:程序博客网 时间:2024/05/20 09:46
手游中的短连接
手游采用短连接,好处自然不言而喻,所谓的短连接就是只有需要和服务器通讯的时候才连接服务器,通讯完毕就断开连接,我叫MT也采用了短连接的方式
弊端
1. 每次发送消息的连接服务器和断开服务器也是一笔不小的开销
2. 不适合那些大量即时信息的手游
优点
1. 只在需要同步的时候才和服务器连接发送数据, 减少了服务器的压力
2. 网络不给力的时候也可以玩,数据发送失败可以手动重发,有限的数据足以保证非WIFI的网络也可以游戏
短连接的流程图
流程图参考:流程图/短连接流程图.edx
短连接的消息处理
流程图参考:流程图/短连接数据发送.edx
注意:
1.两个MsgQueue和客户端服务器消息状态state都是临界区资源,主线程MainThread和消息线程MsgThread不可同时访问
2.发送消息:MainThread 向MsgQueue中push消息,消息线程从队列中pop消息 接收消息和发送消息相反
3.我是用的是cosos2dx引擎,因为不支持多线程,所以消息线程MsgThread中获得的消息一定要压入到消息队列中,主线程MainThread从消息队列MsgQueue中获取消息进行处理,MsgThread不能涉及到任何Cocos2dx的操作,由主线程MainThread来更新界面
4.连接服务器,向服务器发送数据和接收服务器回馈的消息都是在消息线程MsgThread中处理,这样主线程就可以播放等待动画,不会出现连接服务器过慢导致主线程卡死的情况
5.由于是短连接,规则就是:主线程一次只能push一个消息,egmsgID=0x500 然后主线程处于等待消息状态,不断的获取判断消息线程msgThread返回的状态state,只有收到服务器回馈的msgID=0x500的相同ID的消息时,才算消息成功。其余的像没有网络,连接失败,连接超时,接收超时等等错误状态,需要提示玩家是否重发消息,玩家选择重发消息,则在后台重发最后一个发送的消息
短连接我也是刚接触,如果有什么错误的地方,欢迎大家指正,谢谢
- 【COCOS2DX-游戏开发之二六】 手游短连接
- 【COCOS2DX-游戏开发之二六】 手游短连接
- 【cocos2dx游戏开发】之 手游短连接
- 【COCOS2DX-游戏开发之二四】 quick-cocos2dx
- 【COCOS2DX-游戏开发之六】App各平台启动流程
- cocos2dx游戏开发学习笔记(六)之坐标系统
- 【COCOS2DX-ANDROID-游戏开发之二二】之 调用Cocos2dxGLSurfaceView
- 【COCOS2DX-游戏开发之二】 模态对话框
- 【COCOS2DX-ANDROID-游戏开发之二五】 调试 C++代码
- 【COCOS2DX-游戏开发之二七】 坐标系(上)
- 【COCOS2DX-BOX2D游戏开发之二】 Box2d教程链接
- 【COCOS2DX-游戏开发之二九】CCEditBox的各种问题
- COCOS2DX-游戏开发之 坐标系
- 【COCOS2DX-游戏开发之三六】圆与未旋转矩形的碰撞检测(上篇)
- cocos2dx游戏开发学习基础(二)
- cocos2dx游戏开发学习笔记(二)
- 【iOS-cocos2d-X 游戏开发之六】使用Base64算法对Cocos2dX自带CCUserDefault游戏存储数据编码!
- 【iOS-cocos2d-X 游戏开发之六】使用Base64算法对Cocos2dX自带CCUserDefault游戏存储数据编码!
- 搜集的最全面的的有关log4j日记的应用
- Delphi TStream 详细介绍
- Java 理论与实践: 正确使用 Volatile 变量
- SEO需要什么样的wordpress插件
- 一个女程序员的心酸和无奈
- 【COCOS2DX-游戏开发之二六】 手游短连接
- Web开发者不容错过的20段CSS代码(1)
- JavaScrupt就这么回事(转)
- [零基础学软件开发19]字符串初探
- response和request的setCharacterEncoding
- java-io File方法的使用
- ie6和ie7下z-index bug的解决办法
- 怎样去掉“交互式服务对话框检测”提示对话框
- 东软睿道实训推荐:无经验的求职者应该如何准备面试(1)