cocos2d-x 移动端网络优化

这几周一直在优化cocos移动端在弱网络环境下的问题

因为历史原因,使用的是TCP连接和传统的序列化反序列化解析


因为基于TCP,所以网络环境的变化,会导致Socket层无任何异常,无法得知断开了,IOS因为待机也会断网,所以更甚

简单说一下处理的几个步骤吧

1、增加了服务器的心跳和心跳返回,这是最基本的,通过心跳的超时来判断是否断开了

2、增加java层和Oc的监听网络切换或者网络发生变化,java使用JNI,Oc是混编,获取到切换或者网络断开了,立刻主动断开Socket并且走断线重连

3、每次网络发生变化,本地ping服务器js脚本,选择分布式中最快的那个ip在缓存中,连接时候选择最快的那个服务器连接,也就是简单的负载均衡

4、游戏内针对所有的异常情况,超时情况,协议收到的解析出错或者丢包现象做了判断,也是走断线重连机制

5、优化断线重连机制,速度一定要快,立刻反映立刻连接,和服务器的连接要快哟

6、根据包头的while循环判断是否是持续空包,判断断线


其实游戏闪退都没有断开连接卡死要好,弱网络断开了就没反映了是很傻的....所以一定要优化好!

猜你喜欢

转载自blog.csdn.net/qq_37508511/article/details/78866968