手游断线重连

    断线重连,其实并不是一个神马高深的东西,相信各位做游戏的程序们都处理过这个问题,但是,怎么把这个断线重连做的安全,完善呢?下面就跟各位大神来讨论讨论这个问题~!
    游戏中,断线重连(这里是基于TCP长连来讨论的)其实跟游戏类型有关,比如页游,端游,还是手游。当然,我只做过页游和手游,所以咱不对端游发表意见。对于页游而言,一般是PC网络是很稳定的,如果不稳定,其实是没办法玩游戏的,所以对于页游,一般断线处理是重新登录,除非有要求要做重连机制。
   而对于手机来说,网络是相当不稳定的,任何一个基站的切换,进出电梯等都会出现网络抖动导致游戏断线。如果采用重登陆的话,那表现相当不友好而导致大量玩家流失。所以要设计一个比较好的断线重连,让玩家能在网络不稳定的情况下,能比较流畅的进行游戏。
   在设计重连的时候,要考虑几个因素:连接的安全性和超时处理,数据包缓存。
   1、安全性:为啥要考虑连接安全性呢,因为重连不是走正常登录流程,而是直连过来,所以无法保证连接过来的tcp是合法连接,故在此要对连接做合法校验,保证直连过来的是正常客户端请求过来的,预防攻击。合法性校验的方式很多,在此不展开讲了,有兴趣的可以私下交流。
   2、超时处理,因为服务器不可能无限制的等待客户端重连,所以要设置一个超时时间,如果过了超时等待时间,服务器应该清除缓存,客户端走重登陆流程
   3、数据包缓存,这里需要缓存没有发送成功的消息协议,客户端重连过来后,需要再次重新发送。

   以上是项目过程中使用的方案,欢迎各位来讨论,做一套更完善的重连机制。

猜你喜欢

转载自fsplove520.iteye.com/blog/2227142