房间信息。
无
roomInfo 为 Room 实例的属性,类型为 MGOBE.types.RoomInfo,调用 Room 相关的接口会导致该属性发生变化。
该属性为只读属性,用于获取客户端本地 SDK 网络状态。
无
{ COMMON: boolean, RELAY: boolean }
。COMMON 表示房间网络状态;RELAY 表示帧同步网络状态。为 true 时表示网络已连接,为 false 时表示网络未连接。初始化 Room 实例的房间信息,即更新 roomInfo 属性。
参数名 | 类型/值 | 描述 |
---|---|---|
roomInfo | MGOBE.types.RoomInfo 或 { id: string } | 初始化参数,id 表示房间 id |
无
const room = new Room();
// 示例1:不传 roomInfo 参数
// 该 Room 实例房间信息被清除,room.getRoomDetail 将查询玩家所在的房间
room.initRoom();
// 示例2:指定房间 ID
// 该 Room 实例代表 ID 为 xxx 的房间,room.getRoomDetail 将查询 xxx 房间信息
const roomInfo = { id: "xxx" };
room.initRoom(roomInfo);
判断玩家是否在该 Room 实例中。
无
isInRoom 方法本质上是检查 roomInfo.playerList 中是否存在玩家 ID。如果存在,就返回 true。
返回值类型为 boolean,表示玩家是否在该room实例中。
const room = new Room();
room.isInRoom(); // 返回 false,因为 room 还是一个空房间
房间信息更新回调接口。
参数名 | 类型/值 | 描述 | 可选 |
---|---|---|---|
room | Room | 更新的 Room 实例 | 是 |
无
room.onUpdate = (_) => {
console.log(_ === room); // true, 参数 _ 等于 room
console.log("房间信息更新", room.roomInfo);
};
创建房间。
参数名 | 类型/值 | 描述 |
---|---|---|
createRoomPara | MGOBE.types.CreateRoomPara | 创建房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.CreateRoomRsp> | 响应回调函数 |
无
const playerInfo = {
name: "Tom",
customPlayerStatus: 1,
customProfile: "https://xxx.com/icon.png",
};
const createRoomPara = {
roomName: "房间名",
maxPlayers: 4,
roomType: "2V2",
isPrivate: false,
customProperties: "WAIT",
playerInfo,
};
room.createRoom(createRoomPara, event => console.log(event));
创建团队房间。
参数名 | 类型/值 | 描述 |
---|---|---|
createTeamRoomPara | MGOBE.types.CreateTeamRoomPara | 创建团队房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.CreateRoomRsp> | 响应回调函数 |
无
const playerInfo = {
name: "Tom",
customPlayerStatus: 1,
customProfile: "https://xxx.com/icon.png",
};
const createTeamRoomPara = {
roomName: "房间名",
maxPlayers: 4,
roomType: "2V2",
isPrivate: false,
customProperties: "WAIT",
playerInfo,
teamNumber: 2,
};
room.createTeamRoom(createTeamRoomPara, event => console.log(event));
加入房间。
参数名 | 类型/值 | 描述 |
---|---|---|
joinRoomPara | MGOBE.types.JoinRoomPara | 加入房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.JoinRoomRsp> | 响应回调函数 |
无
const playerInfo = {
name: "Tom",
customPlayerStatus: 1,
customProfile: "https://xxx.com/icon.png",
};
const joinRoomPara = {
playerInfo,
};
// 示例1:加入指定 ID 的房间
const room1 = new MGOBE.Room();
room1.initRoom({ id: "xxx" });
room1.joinRoom(joinRoomPara, event => console.log(event));
// 示例2:加入没有房间信息的房间
const room2 = new MGOBE.Room();
// 加房失败,找不到房间信息
room2.joinRoom(joinRoomPara, event => console.log(event));
加入团队房间。
参数名 | 类型/值 | 描述 |
---|---|---|
joinTeamRoomPara | MGOBE.types.JoinTeamRoomPara | 加入团队房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.JoinRoomRsp> | 响应回调函数 |
无
const playerInfo = {
name: "Tom",
customPlayerStatus: 1,
customProfile: "https://xxx.com/icon.png",
};
const joinTeamRoomPara = {
playerInfo,
teamId: "1",
};
room.joinTeamRoom(joinTeamRoomPara, event => console.log(event));
退出房间。
参数名 | 类型/值 | 描述 |
---|---|---|
para | object | 预留参数,传{}即可 |
callback | MGOBE.types.ReqCallback<MGOBE.types.LeaveRoomRsp> | 响应回调函数 |
无
room.leaveRoom({}, event => {
if (event.code === 0) {
// 退房成功
console.log("退房成功", room.roomInfo.id);
// 可以使用 initRoom 清除 roomInfo
room.initRoom();
}
});
解散房间。
参数名 | 类型/值 | 描述 |
---|---|---|
para | object | 预留参数,传{}即可 |
callback | MGOBE.types.ReqCallback<MGOBE.types.DismissRoomRsp> | 响应回调函数 |
无
room.dismissRoom({}, event => {
if (event.code === 0) {
console.log("解散成功");
}
});
修改房间信息。
参数名 | 类型/值 | 描述 |
---|---|---|
changeRoomPara | MGOBE.types.ChangeRoomPara | 修改房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.ChangeRoomRsp> | 响应回调函数 |
无
const changeRoomPara = {
roomName: "房间名",
owner: "xxxxxx",
isPrivate: false,
customProperties: "xxxxxx",
};
room.changeRoom(changeRoomPara, event => console.log(event));
修改玩家自定义状态。
参数名 | 类型/值 | 描述 |
---|---|---|
changeCustomPlayerStatusPara | MGOBE.types.ChangeCustomPlayerStatusPara | 修改玩家状态参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.ChangeCustomPlayerStatusRsp> | 响应回调函数 |
无
const changeCustomPlayerStatusPara = {
customPlayerStatus: 2,
};
room.changeCustomPlayerStatus(changeCustomPlayerStatusPara, event => console.log(event));
移除房间内玩家。
参数名 | 类型/值 | 描述 |
---|---|---|
removePlayerPara | MGOBE.types.RemovePlayerPara | 移除房间内玩家参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.RemovePlayerRsp> | 响应回调函数 |
无
const removePlayerPara = {
removePlayerId: "xxxxxx",
};
room.removePlayer(removePlayerPara, event => console.log(event));
获取 Room 实例的房间信息。
参数名 | 类型/值 | 描述 |
---|---|---|
callback | MGOBE.types.ReqCallback<MGOBE.types.GetRoomByRoomIdRsp> | 响应回调函数 |
无
// 示例1:查询room实例的信息
room.getRoomDetail(event => {
if (event.code === 0) {
console.log("房间名", event.data.roomInfo.name);
}
});
// 示例2:查询玩家所在房间信息
room.initRoom();// 或者 room.initRoom({ id: "" });
room.getRoomDetail(event => {
if (event.code === 0) {
console.log("房间名", event.data.roomInfo.name);
}
});
根据房间 ID 获取房间。
参数名 | 类型/值 | 描述 |
---|---|---|
getRoomByRoomIdPara | MGOBE.types.GetRoomByRoomIdPara | 获取房间参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.GetRoomByRoomIdRsp> | 响应回调函数 |
无
// 示例1:查询指定房间id的信息
const getRoomByRoomIdPara1 = {
roomId: "800000",
};
MGOBE.Room.getRoomByRoomId(getRoomByRoomIdPara1, event => console.log(event));
// 示例2:查询玩家所在房间信息
const getRoomByRoomIdPara2 = {
roomId: "",
};
MGOBE.Room.getRoomByRoomId(getRoomByRoomIdPara2, event => console.log(event));
获取房间列表。
参数名 | 类型/值 | 描述 |
---|---|---|
getRoomListPara | MGOBE.types.GetRoomListPara | 获取房间列表参数 |
callback | MGOBE.types.ReqCallback<MGOBE.types.GetRoomListRsp> | 响应回调函数 |
无
const getRoomListPara = {
pageNo: 1,
pageSize: 10,
};
// 不要使用 room.getRoomList
// 直接使用 Room 对象
MGOBE.Room.getRoomList(getRoomListPara, event => console.log(event));
新玩家加入房间广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.JoinRoomBst> | 回调参数 |
onJoinRoom 广播表示该房间有新玩家加入。房间内全部成员都会收到该广播。
无
room.onJoinRoom = event => console.log("新玩家加入", event.data.joinPlayerId);
玩家退出房间广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.LeaveRoomBst> | 回调参数 |
onLeaveRoom 广播表示该房间有玩家退出。房间内全部成员都会收到该广播。
无
room.onLeaveRoom = event => console.log("玩家退出", event.data.leavePlayerId);
房间被解散广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.DismissRoomBst> | 回调参数 |
onDismissRoom 广播表示房主解散了该房间。房间内全部成员都会收到该广播。
无
room.onDismissRoom = event => console.log("房间已被房主解散");
房主修改房间信息广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.ChangeRoomBst> | 回调参数 |
onChangeRoom 广播表示房主修改了该房间属性。房间内全部成员都会收到该广播。
无
room.onChangeRoom = event => console.log("房间属性变更", event.data.roomInfo);
房间内玩家被移除广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.RemovePlayerBst> | 回调参数 |
onRemovePlayer 广播表示有玩家被房主移除。房间内全部成员都会收到该广播。
无
room.onRemovePlayer = event => console.log("玩家被移除", event.data.removePlayerId);
房间内玩家网络状态变化广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.ChangePlayerNetworkStateBst> | 回调参数 |
无
room.onChangePlayerNetworkState = event => {
if (event.data.networkState === MGOBE.ENUM.NetworkState.COMMON_OFFLINE)
console.log("玩家下线");
};
玩家自定义状态变化广播回调接口。
参数名 | 类型/值 | 描述 |
---|---|---|
event | MGOBE.types.BroadcastEvent<MGOBE.types.ChangeCustomPlayerStatusBst> | 回调参数 |
onChangeCustomPlayerStatus 广播表示房间内 ID 为 changePlayerId 的玩家状态发生变化。玩家状态由开发者自定义。
无
room.onChangeCustomPlayerStatus = event => {
console.log("玩家状态变化", event.data.changePlayerId);
};