• 华为联机对战服务玩家掉线重连案例总结


    华为联机对战服务断线重连解决方案

    游戏过程中,经常会发生网络波动等异常情况,导致玩家掉线,此时如果网络恢复仍希望玩家加入到原游戏中,可以通过下面的方式进行重连。允许重连时间可以在AppGallery Connec控制台进行设置。

    网络异常导致掉线场景

    网络异常导致玩家客户端与联机对战服务端连接不上,在一定周期后服务器会将该玩家设置会掉线状态,如果游戏允许玩家在短时间内网络恢复后重新接入网络则需要使用掉线重连接口实现该场景。
    具体是玩家进入房间后,游戏通过room.onDisconnect(playerInfo)方法监听玩家掉线事件,该方法会返回玩家信息。判断如果是玩家自己掉线,则需要触发room.reconnect()方法重连,重连过程如果网络始终未恢复则一直尝试重连,如果网络恢复则根据结果处理,可能超过允许重连时间则跳转到其他游戏页面。

    room.onDisconnect((playerInfo) => {
        // 当前玩家断线
        if(playerInfo.playerId === room.playerId){
           // 重连逻辑
           reConnect();
           }else{
            //其他玩家掉线处理
        }
    }
    
    reConnect() {
        // 调用重连方法进行重连
        room.reconnect().then(() => {
            //重连成功
        }).catch((e) => {
            if (!e.code) {
                // 网络不通继续重试
                this.reConnect();
                return;
            }
            if (e.code != 0) {
                // 超过允许重连时间退出到其他页面
            }
        });
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    关闭客户端导致掉线

    玩家关闭客户端重新打开后仍希望重连上一局游戏,此时可以在初始化接口返回中判断玩家是否仍然在有效房间内,如果仍然在说明其仍然在允许重连时间内,可以使用加入房间接口重新加入。如果此时不希望加入上一局游戏,则必须先调用接口离开该房间才能重新正常创建房间。

    client.init().then(() => {
        // 初始化成功
        if(client.lastRoomId){
          // 当前玩家仍在上一房间内,可根据lastRoomId重新加入房间
          // 如果不想加入上一个房间内,必须通过client.leaveRoom离开房间,否则新建房间或匹配房间时会报错:玩家已在房间内
        }
      }).catch(() => {
        // 初始化失败
      });
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    CTF-栈溢出-基本ROP-【ret2shellcode】
    python 操作windows的Wlan
    [Vulnhub] narak
    【RocketMQ】【源码】Dledger日志复制源码分析
    基于SSM实现家政管理平台的开发和实现
    高考计算机专业 热门专业方向
    氨基苯酚/多巴胺仿生修饰碳纳米管/α-氧化铝/ CNTs-Ag纳米复合材料
    [C++] 动态内存-malloc/free和new/delete
    new Blob() 和 URL.createObjectURL()
    2022年最新最全143道Java岗面试题及答案
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/125536688