@colyseus/monitor
Version:
Web Monitoring Panel for Colyseus
71 lines (70 loc) • 2.69 kB
JavaScript
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;
}
}
};