# OnlineBattleManager.matchRoom(Object option)

以 Promise 风格调用:支持

# 功能描述

自动匹配房间,根据匹配参数查找或创建房间。如果找到符合条件的房间则加入,否则自动创建新房间。

# 参数

# Object option

属性类型默认值必填说明
dataObject匹配房间请求数据
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

# data 对象结构

属性类型必填说明
roomCfgObject房间配置(不需要name字段)
playerCfgObject玩家配置

# roomCfg 对象结构

属性类型必填说明
maxPlayerCountnumber房间最大人数
typestring房间类型
customPropertiesstring自定义房间属性(最大2048字节)
matchParamsObject匹配参数

# option.success 回调函数

# 参数
# Object res
属性类型说明
roomInfoObject完整房间信息(见RoomInfo数据结构)
errMsgstring成功时为 "matchRoom:ok"

# 注意事项

  • matchRoom的roomCfg不需要设置name字段,房间名称会自动生成
  • 匹配规则基于type和matchParams参数
  • 如果没有找到合适的房间会自动创建新房间

# 示例代码

let tapOnlineBattle = tap.getOnlineBattleManager();

// 回调风格
tapOnlineBattle.matchRoom({
  data: {
    roomCfg: {
      maxPlayerCount: 2,
      type: "新手区",
      matchParams: {
        level: "5",
        score: "100"
      },
      customProperties: "customRoomProperties"
    },
    playerCfg: {
      customStatus: 0,
      customProperties: "customPlayerProperties"
    }
  },
  success: (res) => {
    console.log('匹配房间成功:', res.roomInfo);
  },
  fail: ({errMsg, errno}) => {
    console.error('匹配房间失败:', errMsg);
  }
});

// Promise风格
tapOnlineBattle.matchRoom({
  data: {
    roomCfg: {
      maxPlayerCount: 2,
      type: "新手区",
      matchParams: {
        level: "5",
        score: "100"
      },
      customProperties: "customRoomProperties"
    },
    playerCfg: {
      customStatus: 0,
      customProperties: "customPlayerProperties"
    }
  }
}).then(res => {
  console.log('匹配房间成功:', res.roomInfo);
}).catch(error => {
  console.error('匹配房间失败:', error);
});