roadofcloud-playback-sdk
Version:
CloudHubPlaybackSdk
64 lines (63 loc) • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const global_1 = __importDefault(require("../global"));
class RoomController {
constructor() {
this.filename = null;
this.fileUrl = null;
this.users = [];
}
static getInstance() {
if (!this.instance) {
this.instance = new RoomController();
}
return this.instance;
}
getRoomContent(filename = 'room.json') {
return new Promise((resolve, reject) => {
this.fileUrl = global_1.default.config.recordRootUrl + '/' + filename;
this.filename = filename;
// 检查是否存在 room 文件
fetch(this.fileUrl).then(response => {
if (!response.ok || response.status !== 200) {
reject('file not found');
}
response.json().then(data => {
// 批量赋值
for (let key in data) {
// @ts-ignore
this[key] = data[key];
}
resolve(true);
}).catch(() => {
reject('parser room.json fail');
});
}).catch(error => {
reject(error);
});
});
}
//获取所有用户
getUsers() {
return this.users;
}
getUser(id) {
return this.users.find((item) => item.id === id);
}
setUser(user) {
this.users.push(user);
}
delUser(id) {
let index = this.getUserIndex(id);
if (index >= 0) {
this.users.splice(index, 1);
}
}
getUserIndex(id) {
return this.users.findIndex((item) => item.id === id);
}
}
exports.default = RoomController.getInstance();