天天看點

華為聯機對戰服務斷線重連解決方案

網絡異常導緻掉線場景

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) {
            // 超過允許重連時間退出到其他頁面
        }
    });
}
      

關閉用戶端導緻掉線

client.init().then(() => {
    // 初始化成功
    if(client.lastRoomId){
      // 目前玩家仍在上一房間内,可根據lastRoomId重新加入房間
      // 如果不想加入上一個房間内,必須通過client.leaveRoom離開房間,否則建立房間或比對房間時會報錯:玩家已在房間内
    }
  }).catch(() => {
    // 初始化失敗
  });