UNPKG

@colyseus/monitor

Version:

Web Monitoring Panel for Colyseus

71 lines (70 loc) 2.69 kB
var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var import_core = require("@colyseus/core"); function getStateSize(room) { const hasState = room._serializer.encoder || // schema v3 room._serializer.state || // schema v2 room._serializer.previousState; const fullState = hasState && room._serializer.getFullState(); return fullState && (fullState.byteLength || fullState.length) || 0; } import_core.Room.prototype.getAvailableData = function() { return { clients: this.clients.length, maxClients: this.maxClients, metadata: this.metadata, roomId: this.roomId }; }; import_core.Room.prototype.getRoomListData = async function() { const stateSize = getStateSize(this); const elapsedTime = this.clock.elapsedTime; const locked = this.locked; const data = this.getAvailableData(); return __spreadProps(__spreadValues({}, data), { locked, elapsedTime, stateSize }); }; import_core.Room.prototype.getInspectData = async function() { const state = this.state; const stateSize = getStateSize(this); const roomElapsedTime = this.clock.elapsedTime; const data = this.getAvailableData(); const clients = this.clients.map((client) => ({ sessionId: client.sessionId, elapsedTime: roomElapsedTime - client._joinedAt })); const locked = this.locked; return __spreadProps(__spreadValues({}, data), { locked, clients, state, stateSize }); }; import_core.Room.prototype._forceClientDisconnect = async function(sessionId) { for (let i = 0; i < this.clients.length; i++) { if (this.clients[i].sessionId === sessionId) { this.clients[i].leave(); break; } } }; import_core.Room.prototype._sendMessageToClient = async function(sessionId, type, data) { for (let i = 0; i < this.clients.length; i++) { if (this.clients[i].sessionId === sessionId) { this.clients[i].send(type, data); break; } } };