游戏在运行过程中,由于网络原因导致和服务器的长连接断开,需要使用重连机制来确保游戏稳定运行。重连是指和服务器重新建立连接,并且无需重新登录。
在手机上,断线重连机制显得额外重要,我们在接打电话,切换应用,锁定屏幕,进入电梯等日常行为中都会导致游戏产生网络问题。
那么断线重连如何实现呢?

多问问题

  1. 在哪些情况下需要重连?哪些情况需要重新登录?
  2. 重连流程是什么样的?如何重新验证客户端身份?
  3. 断线前,客户端未收到的消息,如何处理?
  4. 重连成功后,是否停留在当前界面?如果停留,是否会造成卡死?

给出自己的见解

  1. 网络正常情况下,由客户端收到的错误码做出区分,网络异常情况下,直接走重连流程。详尽的错误码对应的方案需要前后端共同拟定。
  2. 重连的流程一般为: 建立新连接->使用token重新验证身份->拉取历史消息(此步骤非必须)->切换界面。一般使用上一次的token进行重新验证。
  3. 断线前丢失的消息,可以不做处理,重连成功后,在特定的界面上需要切换会主界面,比如战斗结算页面。也可以在后端存储前端未确认的消息,在重连后提供拉取接口(此方案需要在协议头中加入已收到的最大消息号)。
  4. 如果后端提供未确认消息拉取接口,则重连成功后无需切换界面,如果对丢失的消息不做处理,需要在特定界面进行切换,防止卡死。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部