@colyseus/core
Version:
Multiplayer Framework for Node.js.
48 lines (47 loc) • 1.18 kB
JavaScript
// 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
};