@colyseus/core
Version:
Multiplayer Framework for Node.js.
127 lines (126 loc) • 5.73 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var Protocol_exports = {};
__export(Protocol_exports, {
ErrorCode: () => ErrorCode,
IpcProtocol: () => IpcProtocol,
Protocol: () => Protocol,
getMessageBytes: () => getMessageBytes
});
module.exports = __toCommonJS(Protocol_exports);
var import_msgpackr = require("@colyseus/msgpackr");
var import_schema = require("@colyseus/schema");
var Protocol = /* @__PURE__ */ ((Protocol2) => {
Protocol2[Protocol2["JOIN_ROOM"] = 10] = "JOIN_ROOM";
Protocol2[Protocol2["ERROR"] = 11] = "ERROR";
Protocol2[Protocol2["LEAVE_ROOM"] = 12] = "LEAVE_ROOM";
Protocol2[Protocol2["ROOM_DATA"] = 13] = "ROOM_DATA";
Protocol2[Protocol2["ROOM_STATE"] = 14] = "ROOM_STATE";
Protocol2[Protocol2["ROOM_STATE_PATCH"] = 15] = "ROOM_STATE_PATCH";
Protocol2[Protocol2["ROOM_DATA_BYTES"] = 17] = "ROOM_DATA_BYTES";
Protocol2[Protocol2["WS_CLOSE_NORMAL"] = 1e3] = "WS_CLOSE_NORMAL";
Protocol2[Protocol2["WS_CLOSE_GOING_AWAY"] = 1001] = "WS_CLOSE_GOING_AWAY";
Protocol2[Protocol2["WS_CLOSE_CONSENTED"] = 4e3] = "WS_CLOSE_CONSENTED";
Protocol2[Protocol2["WS_CLOSE_WITH_ERROR"] = 4002] = "WS_CLOSE_WITH_ERROR";
Protocol2[Protocol2["WS_CLOSE_DEVMODE_RESTART"] = 4010] = "WS_CLOSE_DEVMODE_RESTART";
Protocol2[Protocol2["WS_SERVER_DISCONNECT"] = 4201] = "WS_SERVER_DISCONNECT";
Protocol2[Protocol2["WS_TOO_MANY_CLIENTS"] = 4202] = "WS_TOO_MANY_CLIENTS";
return Protocol2;
})(Protocol || {});
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
ErrorCode2[ErrorCode2["MATCHMAKE_NO_HANDLER"] = 4210] = "MATCHMAKE_NO_HANDLER";
ErrorCode2[ErrorCode2["MATCHMAKE_INVALID_CRITERIA"] = 4211] = "MATCHMAKE_INVALID_CRITERIA";
ErrorCode2[ErrorCode2["MATCHMAKE_INVALID_ROOM_ID"] = 4212] = "MATCHMAKE_INVALID_ROOM_ID";
ErrorCode2[ErrorCode2["MATCHMAKE_UNHANDLED"] = 4213] = "MATCHMAKE_UNHANDLED";
ErrorCode2[ErrorCode2["MATCHMAKE_EXPIRED"] = 4214] = "MATCHMAKE_EXPIRED";
ErrorCode2[ErrorCode2["AUTH_FAILED"] = 4215] = "AUTH_FAILED";
ErrorCode2[ErrorCode2["APPLICATION_ERROR"] = 4216] = "APPLICATION_ERROR";
ErrorCode2[ErrorCode2["INVALID_PAYLOAD"] = 4217] = "INVALID_PAYLOAD";
return ErrorCode2;
})(ErrorCode || {});
var IpcProtocol = /* @__PURE__ */ ((IpcProtocol2) => {
IpcProtocol2[IpcProtocol2["SUCCESS"] = 0] = "SUCCESS";
IpcProtocol2[IpcProtocol2["ERROR"] = 1] = "ERROR";
IpcProtocol2[IpcProtocol2["TIMEOUT"] = 2] = "TIMEOUT";
return IpcProtocol2;
})(IpcProtocol || {});
const packr = new import_msgpackr.Packr({
useRecords: false
// increased compatibility with decoders other than "msgpackr"
});
packr.encode(void 0);
const getMessageBytes = {
[10 /* JOIN_ROOM */]: (reconnectionToken, serializerId, handshake) => {
const it = { offset: 1 };
packr.buffer[0] = 10 /* JOIN_ROOM */;
packr.buffer[it.offset++] = Buffer.byteLength(reconnectionToken, "utf8");
import_schema.encode.utf8Write(packr.buffer, reconnectionToken, it);
packr.buffer[it.offset++] = Buffer.byteLength(serializerId, "utf8");
import_schema.encode.utf8Write(packr.buffer, serializerId, it);
let handshakeLength = handshake?.byteLength || 0;
if (handshakeLength > packr.buffer.byteLength - it.offset) {
packr.useBuffer(Buffer.alloc(it.offset + handshakeLength, packr.buffer));
}
if (handshakeLength > 0) {
handshake.copy(packr.buffer, it.offset, 0, handshakeLength);
}
return Buffer.from(packr.buffer.subarray(0, it.offset + handshakeLength));
},
[11 /* ERROR */]: (code, message = "") => {
const it = { offset: 1 };
packr.buffer[0] = 11 /* ERROR */;
import_schema.encode.number(packr.buffer, code, it);
import_schema.encode.string(packr.buffer, message, it);
return Buffer.from(packr.buffer.subarray(0, it.offset));
},
[14 /* ROOM_STATE */]: (bytes) => {
return [14 /* ROOM_STATE */, ...bytes];
},
raw: (code, type, message, rawMessage) => {
const it = { offset: 1 };
packr.buffer[0] = code;
if (typeof type === "string") {
import_schema.encode.string(packr.buffer, type, it);
} else {
import_schema.encode.number(packr.buffer, type, it);
}
if (message !== void 0) {
packr.position = 0;
if (process.env.NODE_ENV !== "production") {
packr.useBuffer(packr.buffer);
}
const endOfBufferOffset = packr.pack(message, 2048 + it.offset).byteLength;
return Buffer.from(packr.buffer.subarray(0, endOfBufferOffset));
} else if (rawMessage !== void 0) {
if (rawMessage.length + it.offset > packr.buffer.byteLength) {
packr.useBuffer(Buffer.alloc(it.offset + rawMessage.length, packr.buffer));
}
packr.buffer.set(rawMessage, it.offset);
return Buffer.from(packr.buffer.subarray(0, it.offset + rawMessage.byteLength));
} else {
return Buffer.from(packr.buffer.subarray(0, it.offset));
}
}
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ErrorCode,
IpcProtocol,
Protocol,
getMessageBytes
});