【cocos2dx游戏开发】之 手游短连接
2014-04-21 13:27
204 查看
手游采用短连接,好处自然不言而喻,所谓的短连接就是只有需要和服务器通讯的时候才连接服务器,通讯完毕就断开连接,我叫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的消息时,才算消息成功。其余的像没有网络,连接失败,连接超时,接收超时等等错误状态,需要提示玩家是否重发消息,玩家选择重发消息,则在后台重发最后一个发送的消息
短连接我也是刚接触,如果有什么错误的地方,欢迎大家指正,谢谢
转载地址:/article/3590045.html
相关文章推荐
- 【COCOS2DX-游戏开发之二六】 手游短连接
- 【COCOS2DX-游戏开发之二六】 手游短连接
- cocos2dx-2.2.1结合VS2010游戏开发入门(环境搭建)
- 【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等
- 【potatoes游戏开发】cocos2dx3.X项目重写(八)观察者模式(中)
- 2、Cocos2dx 3.0游戏开发找小三之引擎简介
- 游戏开发:通过路径搜索优先级来进行补丁升级(从端游到手游)
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应
- 【iOS-cocos2d-X 游戏开发之四】Cocos2dX创建Android NDK新项目并编译导入Eclipse中正常运行!
- 仿《雷霆战机》飞行射击手游开发--游戏对象
- cocos2dx 实现连接登陆服务器认证后进入游戏
- Cocos2dx游戏开发浅谈之场景
- Android cocos2dx游戏开发——示例程序HelloCpp源码分析
- 【COCOS2DX-游戏开发之十五】eclipse下模拟器运行cocos2dx程序
- 【小松教你手游开发】【游戏渲染】unity海边波浪效果的实现
- 【小松教你手游开发】【游戏渲染】法线贴图Nomal mapping 原理
- 利用cocos2dx 3.2开发消灭星星(九)为游戏添加一些特效
- 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格
- Cocos2dx-手机游戏开发
- 【iOS-cocos2d-X 游戏开发之十四】Xcode中c++&Object-C混编,详细介绍如何在cocos2dx中访问object函数以及Apple Api