您的位置:首页 > 移动开发 > Cocos引擎

【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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐