UNPKG

@colyseus/core

Version:

Multiplayer Framework for Node.js.

48 lines (47 loc) 1.18 kB
// packages/core/src/Transport.ts import "http"; import "https"; import { ErrorCode } from "@colyseus/shared-types"; import "@colyseus/schema"; import "events"; import { spliceOne } from "./utils/Utils.mjs"; import { ServerError } from "./errors/ServerError.mjs"; var _transport; function setTransport(transport) { _transport = transport; } function getTransport() { return _transport; } var Transport = class { }; var ClientState = { JOINING: 0, JOINED: 1, RECONNECTING: 2, RECONNECTED: 3, LEAVING: 4, CLOSED: 5 }; var ClientArray = class extends Array { getById(sessionId) { return this.find((client) => client.sessionId === sessionId); } delete(client) { return spliceOne(this, this.indexOf(client)); } }; async function connectClientToRoom(room, client, authContext, connectionOptions) { if (!room || !room.hasReservedSeat(client.sessionId, connectionOptions.reconnectionToken)) { throw new ServerError(ErrorCode.MATCHMAKE_EXPIRED, "seat reservation expired."); } await room["_onJoin"](client, authContext, connectionOptions); } export { ClientArray, ClientState, Transport, connectClientToRoom, getTransport, setTransport };