游戏在运行过程中,由于网络原因导致和服务器的长连接断开,需要使用重连机制来确保游戏稳定运行。重连是指和服务器重新建立连接,并且无需重新登录。
在手机上,断线重连机制显得额外重要,我们在接打电话,切换应用,锁定屏幕,进入电梯等日常行为中都会导致游戏产生网络问题。
那么断线重连如何实现呢?
多问问题
- 在哪些情况下需要重连?哪些情况需要重新登录?
- 重连流程是什么样的?如何重新验证客户端身份?
- 断线前,客户端未收到的消息,如何处理?
- 重连成功后,是否停留在当前界面?如果停留,是否会造成卡死?
给出自己的见解
- 网络正常情况下,由客户端收到的错误码做出区分,网络异常情况下,直接走重连流程。详尽的错误码对应的方案需要前后端共同拟定。
- 重连的流程一般为: 建立新连接->使用token重新验证身份->拉取历史消息(此步骤非必须)->切换界面。一般使用上一次的token进行重新验证。
- 断线前丢失的消息,可以不做处理,重连成功后,在特定的界面上需要切换会主界面,比如战斗结算页面。也可以在后端存储前端未确认的消息,在重连后提供拉取接口(此方案需要在协议头中加入已收到的最大消息号)。
- 如果后端提供未确认消息拉取接口,则重连成功后无需切换界面,如果对丢失的消息不做处理,需要在特定界面进行切换,防止卡死。
发表评论 取消回复