@colyseus/core 0.15.41 → 0.16.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/build/IPC.js.map +1 -1
- package/build/IPC.mjs.map +1 -1
- package/build/MatchMaker.d.ts +1 -2
- package/build/MatchMaker.js +3 -13
- package/build/MatchMaker.js.map +2 -2
- package/build/MatchMaker.mjs +3 -12
- package/build/MatchMaker.mjs.map +2 -2
- package/build/Protocol.d.ts +5 -8
- package/build/Protocol.js +36 -79
- package/build/Protocol.js.map +2 -2
- package/build/Protocol.mjs +37 -79
- package/build/Protocol.mjs.map +2 -2
- package/build/Room.d.ts +13 -16
- package/build/Room.js +7 -23
- package/build/Room.js.map +3 -3
- package/build/Room.mjs +8 -24
- package/build/Room.mjs.map +2 -2
- package/build/Transport.d.ts +13 -6
- package/build/Transport.js.map +2 -2
- package/build/Transport.mjs.map +2 -2
- package/build/index.d.ts +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +2 -2
- package/build/index.mjs +2 -2
- package/build/index.mjs.map +2 -2
- package/build/presence/LocalPresence.d.ts +1 -1
- package/build/presence/LocalPresence.js.map +2 -2
- package/build/presence/LocalPresence.mjs.map +2 -2
- package/build/rooms/RelayRoom.js +2 -3
- package/build/rooms/RelayRoom.js.map +2 -2
- package/build/rooms/RelayRoom.mjs +3 -4
- package/build/rooms/RelayRoom.mjs.map +2 -2
- package/build/serializer/SchemaSerializer.d.ts +9 -6
- package/build/serializer/SchemaSerializer.js +59 -43
- package/build/serializer/SchemaSerializer.js.map +2 -2
- package/build/serializer/SchemaSerializer.mjs +60 -44
- package/build/serializer/SchemaSerializer.mjs.map +2 -2
- package/build/serializer/Serializer.d.ts +3 -2
- package/build/serializer/Serializer.js.map +1 -1
- package/build/utils/Utils.d.ts +1 -8
- package/build/utils/Utils.js +3 -3
- package/build/utils/Utils.js.map +2 -2
- package/build/utils/Utils.mjs +2 -2
- package/build/utils/Utils.mjs.map +2 -2
- package/package.json +4 -5
package/build/Protocol.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { Iterator } from '@colyseus/schema';
|
|
3
3
|
export declare enum Protocol {
|
|
4
4
|
JOIN_ROOM = 10,
|
|
5
5
|
ERROR = 11,
|
|
@@ -7,7 +7,6 @@ export declare enum Protocol {
|
|
|
7
7
|
ROOM_DATA = 13,
|
|
8
8
|
ROOM_STATE = 14,
|
|
9
9
|
ROOM_STATE_PATCH = 15,
|
|
10
|
-
ROOM_DATA_SCHEMA = 16,// used to send schema instances via room.send()
|
|
11
10
|
ROOM_DATA_BYTES = 17,
|
|
12
11
|
WS_CLOSE_NORMAL = 1000,
|
|
13
12
|
WS_CLOSE_GOING_AWAY = 1001,
|
|
@@ -33,11 +32,9 @@ export declare enum IpcProtocol {
|
|
|
33
32
|
TIMEOUT = 2
|
|
34
33
|
}
|
|
35
34
|
export declare const getMessageBytes: {
|
|
36
|
-
10: (reconnectionToken: string, serializerId: string, handshake?:
|
|
37
|
-
11: (code: number, message?: string) =>
|
|
35
|
+
10: (reconnectionToken: string, serializerId: string, handshake?: Buffer) => Buffer;
|
|
36
|
+
11: (code: number, message?: string) => Buffer;
|
|
38
37
|
14: (bytes: number[]) => number[];
|
|
39
|
-
|
|
40
|
-
raw: (code: Protocol, type: string | number, message?: any, rawMessage?: ArrayLike<number> | Buffer) => Uint8Array;
|
|
38
|
+
raw: (code: Protocol, type: string | number, message?: any, rawMessage?: Uint8Array | Buffer) => Buffer;
|
|
41
39
|
};
|
|
42
|
-
export declare function utf8Write(buff: Buffer,
|
|
43
|
-
export declare function utf8Length(str?: string): number;
|
|
40
|
+
export declare function utf8Write(buff: Buffer, it: Iterator, str?: string): void;
|
package/build/Protocol.js
CHANGED
|
@@ -21,13 +21,11 @@ __export(Protocol_exports, {
|
|
|
21
21
|
IpcProtocol: () => IpcProtocol,
|
|
22
22
|
Protocol: () => Protocol,
|
|
23
23
|
getMessageBytes: () => getMessageBytes,
|
|
24
|
-
utf8Length: () => utf8Length,
|
|
25
24
|
utf8Write: () => utf8Write
|
|
26
25
|
});
|
|
27
26
|
module.exports = __toCommonJS(Protocol_exports);
|
|
28
27
|
var import_msgpackr = require("msgpackr");
|
|
29
28
|
var import_schema = require("@colyseus/schema");
|
|
30
|
-
var import_Logger = require("./Logger");
|
|
31
29
|
var Protocol = /* @__PURE__ */ ((Protocol2) => {
|
|
32
30
|
Protocol2[Protocol2["JOIN_ROOM"] = 10] = "JOIN_ROOM";
|
|
33
31
|
Protocol2[Protocol2["ERROR"] = 11] = "ERROR";
|
|
@@ -35,7 +33,6 @@ var Protocol = /* @__PURE__ */ ((Protocol2) => {
|
|
|
35
33
|
Protocol2[Protocol2["ROOM_DATA"] = 13] = "ROOM_DATA";
|
|
36
34
|
Protocol2[Protocol2["ROOM_STATE"] = 14] = "ROOM_STATE";
|
|
37
35
|
Protocol2[Protocol2["ROOM_STATE_PATCH"] = 15] = "ROOM_STATE_PATCH";
|
|
38
|
-
Protocol2[Protocol2["ROOM_DATA_SCHEMA"] = 16] = "ROOM_DATA_SCHEMA";
|
|
39
36
|
Protocol2[Protocol2["ROOM_DATA_BYTES"] = 17] = "ROOM_DATA_BYTES";
|
|
40
37
|
Protocol2[Protocol2["WS_CLOSE_NORMAL"] = 1e3] = "WS_CLOSE_NORMAL";
|
|
41
38
|
Protocol2[Protocol2["WS_CLOSE_GOING_AWAY"] = 1001] = "WS_CLOSE_GOING_AWAY";
|
|
@@ -63,109 +60,70 @@ var IpcProtocol = /* @__PURE__ */ ((IpcProtocol2) => {
|
|
|
63
60
|
IpcProtocol2[IpcProtocol2["TIMEOUT"] = 2] = "TIMEOUT";
|
|
64
61
|
return IpcProtocol2;
|
|
65
62
|
})(IpcProtocol || {});
|
|
63
|
+
const sendBuffer = Buffer.allocUnsafe(8192);
|
|
64
|
+
const packr = new import_msgpackr.Packr();
|
|
65
|
+
packr.useBuffer(sendBuffer);
|
|
66
66
|
const getMessageBytes = {
|
|
67
67
|
[10 /* JOIN_ROOM */]: (reconnectionToken, serializerId, handshake) => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
buff.writeUInt8(10 /* JOIN_ROOM */, offset++);
|
|
74
|
-
utf8Write(buff, offset, reconnectionToken);
|
|
75
|
-
offset += reconnectionTokenLength;
|
|
76
|
-
utf8Write(buff, offset, serializerId);
|
|
77
|
-
offset += serializerIdLength;
|
|
78
|
-
if (handshake) {
|
|
79
|
-
for (let i = 0, l = handshake.length; i < l; i++) {
|
|
80
|
-
buff.writeUInt8(handshake[i], offset++);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return buff;
|
|
68
|
+
const it = { offset: 1 };
|
|
69
|
+
sendBuffer[0] = 10 /* JOIN_ROOM */;
|
|
70
|
+
utf8Write(sendBuffer, it, reconnectionToken);
|
|
71
|
+
utf8Write(sendBuffer, it, serializerId);
|
|
72
|
+
return Buffer.concat([sendBuffer.subarray(0, it.offset), handshake]);
|
|
84
73
|
},
|
|
85
74
|
[11 /* ERROR */]: (code, message = "") => {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
import_schema.encode.
|
|
89
|
-
|
|
75
|
+
const it = { offset: 1 };
|
|
76
|
+
sendBuffer[0] = 11 /* ERROR */;
|
|
77
|
+
import_schema.encode.number(sendBuffer, code, it);
|
|
78
|
+
import_schema.encode.string(sendBuffer, message, it);
|
|
79
|
+
return sendBuffer.subarray(0, it.offset);
|
|
90
80
|
},
|
|
91
81
|
[14 /* ROOM_STATE */]: (bytes) => {
|
|
92
82
|
return [14 /* ROOM_STATE */, ...bytes];
|
|
93
83
|
},
|
|
94
|
-
[16 /* ROOM_DATA_SCHEMA */]: (message) => {
|
|
95
|
-
const typeid = message.constructor._typeid;
|
|
96
|
-
if (typeid === void 0) {
|
|
97
|
-
import_Logger.logger.warn("Starting at colyseus >= 0.13 You must provide a type and message when calling `this.broadcast()` or `client.send()`. Please see: https://docs.colyseus.io/migrating/0.13/");
|
|
98
|
-
throw new Error(`an instance of Schema was expected, but ${JSON.stringify(message)} has been provided.`);
|
|
99
|
-
}
|
|
100
|
-
return [16 /* ROOM_DATA_SCHEMA */, typeid, ...message.encodeAll()];
|
|
101
|
-
},
|
|
102
84
|
raw: (code, type, message, rawMessage) => {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
if (
|
|
106
|
-
import_schema.encode.string(
|
|
107
|
-
} else if (messageType === "number") {
|
|
108
|
-
import_schema.encode.number(initialBytes, type);
|
|
85
|
+
const it = { offset: 1 };
|
|
86
|
+
sendBuffer[0] = code;
|
|
87
|
+
if (typeof type === "string") {
|
|
88
|
+
import_schema.encode.string(sendBuffer, type, it);
|
|
109
89
|
} else {
|
|
110
|
-
|
|
90
|
+
import_schema.encode.number(sendBuffer, type, it);
|
|
111
91
|
}
|
|
112
|
-
let arr;
|
|
113
92
|
if (message !== void 0) {
|
|
114
|
-
|
|
115
|
-
arr = new Uint8Array(initialBytes.length + encoded.byteLength);
|
|
116
|
-
arr.set(new Uint8Array(initialBytes), 0);
|
|
117
|
-
arr.set(new Uint8Array(encoded), initialBytes.length);
|
|
93
|
+
return (0, import_msgpackr.pack)(message, 2048 + it.offset);
|
|
118
94
|
} else if (rawMessage !== void 0) {
|
|
119
|
-
|
|
120
|
-
arr.set(new Uint8Array(initialBytes), 0);
|
|
121
|
-
arr.set(new Uint8Array(rawMessage), initialBytes.length);
|
|
95
|
+
return Buffer.concat([sendBuffer.subarray(0, it.offset), rawMessage]);
|
|
122
96
|
} else {
|
|
123
|
-
|
|
97
|
+
return sendBuffer.subarray(0, it.offset);
|
|
124
98
|
}
|
|
125
|
-
return arr;
|
|
126
99
|
}
|
|
127
100
|
};
|
|
128
|
-
function utf8Write(buff,
|
|
129
|
-
|
|
101
|
+
function utf8Write(buff, it, str = "") {
|
|
102
|
+
const byteLength = Buffer.byteLength(str, "utf8");
|
|
103
|
+
console.log("utf8Write", { byteLength, str });
|
|
104
|
+
buff[it.offset++] = byteLength;
|
|
130
105
|
let c = 0;
|
|
131
106
|
for (let i = 0, l = str.length; i < l; i++) {
|
|
132
107
|
c = str.charCodeAt(i);
|
|
133
108
|
if (c < 128) {
|
|
134
|
-
buff[offset++] = c;
|
|
109
|
+
buff[it.offset++] = c;
|
|
135
110
|
} else if (c < 2048) {
|
|
136
|
-
buff[offset++] = 192 | c >> 6;
|
|
137
|
-
buff[offset++] = 128 | c & 63;
|
|
111
|
+
buff[it.offset++] = 192 | c >> 6;
|
|
112
|
+
buff[it.offset++] = 128 | c & 63;
|
|
138
113
|
} else if (c < 55296 || c >= 57344) {
|
|
139
|
-
buff[offset++] = 224 | c >> 12;
|
|
140
|
-
buff[offset++] = 128 | c >> 6 & 63;
|
|
141
|
-
buff[offset++] = 128 | c & 63;
|
|
114
|
+
buff[it.offset++] = 224 | c >> 12;
|
|
115
|
+
buff[it.offset++] = 128 | c >> 6 & 63;
|
|
116
|
+
buff[it.offset++] = 128 | c & 63;
|
|
142
117
|
} else {
|
|
143
118
|
i++;
|
|
144
119
|
c = 65536 + ((c & 1023) << 10 | str.charCodeAt(i) & 1023);
|
|
145
|
-
buff[offset++] = 240 | c >> 18;
|
|
146
|
-
buff[offset++] = 128 | c >> 12 & 63;
|
|
147
|
-
buff[offset++] = 128 | c >> 6 & 63;
|
|
148
|
-
buff[offset++] = 128 | c & 63;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
function utf8Length(str = "") {
|
|
153
|
-
let c = 0;
|
|
154
|
-
let length = 0;
|
|
155
|
-
for (let i = 0, l = str.length; i < l; i++) {
|
|
156
|
-
c = str.charCodeAt(i);
|
|
157
|
-
if (c < 128) {
|
|
158
|
-
length += 1;
|
|
159
|
-
} else if (c < 2048) {
|
|
160
|
-
length += 2;
|
|
161
|
-
} else if (c < 55296 || c >= 57344) {
|
|
162
|
-
length += 3;
|
|
163
|
-
} else {
|
|
164
|
-
i++;
|
|
165
|
-
length += 4;
|
|
120
|
+
buff[it.offset++] = 240 | c >> 18;
|
|
121
|
+
buff[it.offset++] = 128 | c >> 12 & 63;
|
|
122
|
+
buff[it.offset++] = 128 | c >> 6 & 63;
|
|
123
|
+
buff[it.offset++] = 128 | c & 63;
|
|
166
124
|
}
|
|
167
125
|
}
|
|
168
|
-
|
|
126
|
+
it.offset += byteLength;
|
|
169
127
|
}
|
|
170
128
|
// Annotate the CommonJS export names for ESM import in node:
|
|
171
129
|
0 && (module.exports = {
|
|
@@ -173,6 +131,5 @@ function utf8Length(str = "") {
|
|
|
173
131
|
IpcProtocol,
|
|
174
132
|
Protocol,
|
|
175
133
|
getMessageBytes,
|
|
176
|
-
utf8Length,
|
|
177
134
|
utf8Write
|
|
178
135
|
});
|
package/build/Protocol.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { pack } from 'msgpackr';\nimport { encode,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"sourcesContent": ["import { pack, Packr } from 'msgpackr';\nimport { encode, Iterator } from '@colyseus/schema';\n\n// Colyseus protocol codes range between 0~100\nexport enum Protocol {\n // Room-related (10~19)\n JOIN_ROOM = 10,\n ERROR = 11,\n LEAVE_ROOM = 12,\n ROOM_DATA = 13,\n ROOM_STATE = 14,\n ROOM_STATE_PATCH = 15,\n // ROOM_DATA_SCHEMA = 16, // DEPRECATED: used to send schema instances via room.send()\n ROOM_DATA_BYTES = 17,\n\n // WebSocket close codes (https://github.com/Luka967/websocket-close-codes)\n WS_CLOSE_NORMAL = 1000,\n WS_CLOSE_GOING_AWAY = 1001,\n\n // WebSocket error codes\n WS_CLOSE_CONSENTED = 4000,\n WS_CLOSE_WITH_ERROR = 4002,\n WS_CLOSE_DEVMODE_RESTART = 4010,\n\n WS_SERVER_DISCONNECT = 4201,\n WS_TOO_MANY_CLIENTS = 4202,\n}\n\nexport enum ErrorCode {\n // MatchMaking Error Codes\n MATCHMAKE_NO_HANDLER = 4210,\n MATCHMAKE_INVALID_CRITERIA = 4211,\n MATCHMAKE_INVALID_ROOM_ID = 4212,\n MATCHMAKE_UNHANDLED = 4213, // generic exception during onCreate/onJoin\n MATCHMAKE_EXPIRED = 4214, // generic exception during onCreate/onJoin\n\n AUTH_FAILED = 4215,\n APPLICATION_ERROR = 4216,\n\n INVALID_PAYLOAD = 4217,\n}\n\n// Inter-process communication protocol\nexport enum IpcProtocol {\n SUCCESS = 0,\n ERROR = 1,\n TIMEOUT = 2,\n}\n\nconst sendBuffer = Buffer.allocUnsafe(8192);\nconst packr = new Packr();\n// @ts-ignore\npackr.useBuffer(sendBuffer);\n\nexport const getMessageBytes = {\n [Protocol.JOIN_ROOM]: (reconnectionToken: string, serializerId: string, handshake?: Buffer) => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = Protocol.JOIN_ROOM;\n\n utf8Write(sendBuffer, it, reconnectionToken);\n utf8Write(sendBuffer, it, serializerId);\n\n return Buffer.concat([sendBuffer.subarray(0, it.offset), handshake]);\n },\n\n [Protocol.ERROR]: (code: number, message: string = '') => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = Protocol.ERROR;\n\n encode.number(sendBuffer, code, it);\n encode.string(sendBuffer, message, it);\n\n return sendBuffer.subarray(0, it.offset);\n },\n\n [Protocol.ROOM_STATE]: (bytes: number[]) => {\n return [Protocol.ROOM_STATE, ...bytes];\n },\n\n raw: (code: Protocol, type: string | number, message?: any, rawMessage?: Uint8Array | Buffer) => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = code;\n\n if (typeof (type) === 'string') {\n encode.string(sendBuffer, type as string, it);\n\n } else {\n encode.number(sendBuffer, type, it);\n }\n\n if (message !== undefined) {\n // @ts-ignore\n return pack(message, 2048 + it.offset); // PR to fix TypeScript types https://github.com/kriszyp/msgpackr/pull/137\n // 2048 = RESERVE_START_SPACE\n\n } else if (rawMessage !== undefined) {\n return Buffer.concat([sendBuffer.subarray(0, it.offset), rawMessage]);\n\n } else {\n return sendBuffer.subarray(0, it.offset);\n }\n },\n\n};\n\nexport function utf8Write(buff: Buffer, it: Iterator, str: string = '') {\n const byteLength = Buffer.byteLength(str, \"utf8\");\n console.log(\"utf8Write\", { byteLength, str });\n\n buff[it.offset++] = byteLength;\n\n let c = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n buff[it.offset++] = c;\n } else if (c < 0x800) {\n buff[it.offset++] = 0xc0 | (c >> 6);\n buff[it.offset++] = 0x80 | (c & 0x3f);\n } else if (c < 0xd800 || c >= 0xe000) {\n buff[it.offset++] = 0xe0 | (c >> 12);\n buff[it.offset++] = 0x80 | (c >> 6) & 0x3f;\n buff[it.offset++] = 0x80 | (c & 0x3f);\n } else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n buff[it.offset++] = 0xf0 | (c >> 18);\n buff[it.offset++] = 0x80 | (c >> 12) & 0x3f;\n buff[it.offset++] = 0x80 | (c >> 6) & 0x3f;\n buff[it.offset++] = 0x80 | (c & 0x3f);\n }\n }\n\n it.offset += byteLength;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Protocol", "ErrorCode", "IpcProtocol"]
|
|
7
7
|
}
|
package/build/Protocol.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { pack } from "msgpackr";
|
|
1
|
+
import { pack, Packr } from "msgpackr";
|
|
2
2
|
import { encode } from "@colyseus/schema";
|
|
3
|
-
import { logger } from "./Logger";
|
|
4
3
|
var Protocol = /* @__PURE__ */ ((Protocol2) => {
|
|
5
4
|
Protocol2[Protocol2["JOIN_ROOM"] = 10] = "JOIN_ROOM";
|
|
6
5
|
Protocol2[Protocol2["ERROR"] = 11] = "ERROR";
|
|
@@ -8,7 +7,6 @@ var Protocol = /* @__PURE__ */ ((Protocol2) => {
|
|
|
8
7
|
Protocol2[Protocol2["ROOM_DATA"] = 13] = "ROOM_DATA";
|
|
9
8
|
Protocol2[Protocol2["ROOM_STATE"] = 14] = "ROOM_STATE";
|
|
10
9
|
Protocol2[Protocol2["ROOM_STATE_PATCH"] = 15] = "ROOM_STATE_PATCH";
|
|
11
|
-
Protocol2[Protocol2["ROOM_DATA_SCHEMA"] = 16] = "ROOM_DATA_SCHEMA";
|
|
12
10
|
Protocol2[Protocol2["ROOM_DATA_BYTES"] = 17] = "ROOM_DATA_BYTES";
|
|
13
11
|
Protocol2[Protocol2["WS_CLOSE_NORMAL"] = 1e3] = "WS_CLOSE_NORMAL";
|
|
14
12
|
Protocol2[Protocol2["WS_CLOSE_GOING_AWAY"] = 1001] = "WS_CLOSE_GOING_AWAY";
|
|
@@ -36,115 +34,75 @@ var IpcProtocol = /* @__PURE__ */ ((IpcProtocol2) => {
|
|
|
36
34
|
IpcProtocol2[IpcProtocol2["TIMEOUT"] = 2] = "TIMEOUT";
|
|
37
35
|
return IpcProtocol2;
|
|
38
36
|
})(IpcProtocol || {});
|
|
37
|
+
const sendBuffer = Buffer.allocUnsafe(8192);
|
|
38
|
+
const packr = new Packr();
|
|
39
|
+
packr.useBuffer(sendBuffer);
|
|
39
40
|
const getMessageBytes = {
|
|
40
41
|
[10 /* JOIN_ROOM */]: (reconnectionToken, serializerId, handshake) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
buff.writeUInt8(10 /* JOIN_ROOM */, offset++);
|
|
47
|
-
utf8Write(buff, offset, reconnectionToken);
|
|
48
|
-
offset += reconnectionTokenLength;
|
|
49
|
-
utf8Write(buff, offset, serializerId);
|
|
50
|
-
offset += serializerIdLength;
|
|
51
|
-
if (handshake) {
|
|
52
|
-
for (let i = 0, l = handshake.length; i < l; i++) {
|
|
53
|
-
buff.writeUInt8(handshake[i], offset++);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return buff;
|
|
42
|
+
const it = { offset: 1 };
|
|
43
|
+
sendBuffer[0] = 10 /* JOIN_ROOM */;
|
|
44
|
+
utf8Write(sendBuffer, it, reconnectionToken);
|
|
45
|
+
utf8Write(sendBuffer, it, serializerId);
|
|
46
|
+
return Buffer.concat([sendBuffer.subarray(0, it.offset), handshake]);
|
|
57
47
|
},
|
|
58
48
|
[11 /* ERROR */]: (code, message = "") => {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
encode.
|
|
62
|
-
|
|
49
|
+
const it = { offset: 1 };
|
|
50
|
+
sendBuffer[0] = 11 /* ERROR */;
|
|
51
|
+
encode.number(sendBuffer, code, it);
|
|
52
|
+
encode.string(sendBuffer, message, it);
|
|
53
|
+
return sendBuffer.subarray(0, it.offset);
|
|
63
54
|
},
|
|
64
55
|
[14 /* ROOM_STATE */]: (bytes) => {
|
|
65
56
|
return [14 /* ROOM_STATE */, ...bytes];
|
|
66
57
|
},
|
|
67
|
-
[16 /* ROOM_DATA_SCHEMA */]: (message) => {
|
|
68
|
-
const typeid = message.constructor._typeid;
|
|
69
|
-
if (typeid === void 0) {
|
|
70
|
-
logger.warn("Starting at colyseus >= 0.13 You must provide a type and message when calling `this.broadcast()` or `client.send()`. Please see: https://docs.colyseus.io/migrating/0.13/");
|
|
71
|
-
throw new Error(`an instance of Schema was expected, but ${JSON.stringify(message)} has been provided.`);
|
|
72
|
-
}
|
|
73
|
-
return [16 /* ROOM_DATA_SCHEMA */, typeid, ...message.encodeAll()];
|
|
74
|
-
},
|
|
75
58
|
raw: (code, type, message, rawMessage) => {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
encode.string(
|
|
80
|
-
} else if (messageType === "number") {
|
|
81
|
-
encode.number(initialBytes, type);
|
|
59
|
+
const it = { offset: 1 };
|
|
60
|
+
sendBuffer[0] = code;
|
|
61
|
+
if (typeof type === "string") {
|
|
62
|
+
encode.string(sendBuffer, type, it);
|
|
82
63
|
} else {
|
|
83
|
-
|
|
64
|
+
encode.number(sendBuffer, type, it);
|
|
84
65
|
}
|
|
85
|
-
let arr;
|
|
86
66
|
if (message !== void 0) {
|
|
87
|
-
|
|
88
|
-
arr = new Uint8Array(initialBytes.length + encoded.byteLength);
|
|
89
|
-
arr.set(new Uint8Array(initialBytes), 0);
|
|
90
|
-
arr.set(new Uint8Array(encoded), initialBytes.length);
|
|
67
|
+
return pack(message, 2048 + it.offset);
|
|
91
68
|
} else if (rawMessage !== void 0) {
|
|
92
|
-
|
|
93
|
-
arr.set(new Uint8Array(initialBytes), 0);
|
|
94
|
-
arr.set(new Uint8Array(rawMessage), initialBytes.length);
|
|
69
|
+
return Buffer.concat([sendBuffer.subarray(0, it.offset), rawMessage]);
|
|
95
70
|
} else {
|
|
96
|
-
|
|
71
|
+
return sendBuffer.subarray(0, it.offset);
|
|
97
72
|
}
|
|
98
|
-
return arr;
|
|
99
73
|
}
|
|
100
74
|
};
|
|
101
|
-
function utf8Write(buff,
|
|
102
|
-
|
|
75
|
+
function utf8Write(buff, it, str = "") {
|
|
76
|
+
const byteLength = Buffer.byteLength(str, "utf8");
|
|
77
|
+
console.log("utf8Write", { byteLength, str });
|
|
78
|
+
buff[it.offset++] = byteLength;
|
|
103
79
|
let c = 0;
|
|
104
80
|
for (let i = 0, l = str.length; i < l; i++) {
|
|
105
81
|
c = str.charCodeAt(i);
|
|
106
82
|
if (c < 128) {
|
|
107
|
-
buff[offset++] = c;
|
|
83
|
+
buff[it.offset++] = c;
|
|
108
84
|
} else if (c < 2048) {
|
|
109
|
-
buff[offset++] = 192 | c >> 6;
|
|
110
|
-
buff[offset++] = 128 | c & 63;
|
|
85
|
+
buff[it.offset++] = 192 | c >> 6;
|
|
86
|
+
buff[it.offset++] = 128 | c & 63;
|
|
111
87
|
} else if (c < 55296 || c >= 57344) {
|
|
112
|
-
buff[offset++] = 224 | c >> 12;
|
|
113
|
-
buff[offset++] = 128 | c >> 6 & 63;
|
|
114
|
-
buff[offset++] = 128 | c & 63;
|
|
88
|
+
buff[it.offset++] = 224 | c >> 12;
|
|
89
|
+
buff[it.offset++] = 128 | c >> 6 & 63;
|
|
90
|
+
buff[it.offset++] = 128 | c & 63;
|
|
115
91
|
} else {
|
|
116
92
|
i++;
|
|
117
93
|
c = 65536 + ((c & 1023) << 10 | str.charCodeAt(i) & 1023);
|
|
118
|
-
buff[offset++] = 240 | c >> 18;
|
|
119
|
-
buff[offset++] = 128 | c >> 12 & 63;
|
|
120
|
-
buff[offset++] = 128 | c >> 6 & 63;
|
|
121
|
-
buff[offset++] = 128 | c & 63;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
function utf8Length(str = "") {
|
|
126
|
-
let c = 0;
|
|
127
|
-
let length = 0;
|
|
128
|
-
for (let i = 0, l = str.length; i < l; i++) {
|
|
129
|
-
c = str.charCodeAt(i);
|
|
130
|
-
if (c < 128) {
|
|
131
|
-
length += 1;
|
|
132
|
-
} else if (c < 2048) {
|
|
133
|
-
length += 2;
|
|
134
|
-
} else if (c < 55296 || c >= 57344) {
|
|
135
|
-
length += 3;
|
|
136
|
-
} else {
|
|
137
|
-
i++;
|
|
138
|
-
length += 4;
|
|
94
|
+
buff[it.offset++] = 240 | c >> 18;
|
|
95
|
+
buff[it.offset++] = 128 | c >> 12 & 63;
|
|
96
|
+
buff[it.offset++] = 128 | c >> 6 & 63;
|
|
97
|
+
buff[it.offset++] = 128 | c & 63;
|
|
139
98
|
}
|
|
140
99
|
}
|
|
141
|
-
|
|
100
|
+
it.offset += byteLength;
|
|
142
101
|
}
|
|
143
102
|
export {
|
|
144
103
|
ErrorCode,
|
|
145
104
|
IpcProtocol,
|
|
146
105
|
Protocol,
|
|
147
106
|
getMessageBytes,
|
|
148
|
-
utf8Length,
|
|
149
107
|
utf8Write
|
|
150
108
|
};
|
package/build/Protocol.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { pack } from 'msgpackr';\nimport { encode,
|
|
5
|
-
"mappings": "AAAA,SAAS,
|
|
4
|
+
"sourcesContent": ["import { pack, Packr } from 'msgpackr';\nimport { encode, Iterator } from '@colyseus/schema';\n\n// Colyseus protocol codes range between 0~100\nexport enum Protocol {\n // Room-related (10~19)\n JOIN_ROOM = 10,\n ERROR = 11,\n LEAVE_ROOM = 12,\n ROOM_DATA = 13,\n ROOM_STATE = 14,\n ROOM_STATE_PATCH = 15,\n // ROOM_DATA_SCHEMA = 16, // DEPRECATED: used to send schema instances via room.send()\n ROOM_DATA_BYTES = 17,\n\n // WebSocket close codes (https://github.com/Luka967/websocket-close-codes)\n WS_CLOSE_NORMAL = 1000,\n WS_CLOSE_GOING_AWAY = 1001,\n\n // WebSocket error codes\n WS_CLOSE_CONSENTED = 4000,\n WS_CLOSE_WITH_ERROR = 4002,\n WS_CLOSE_DEVMODE_RESTART = 4010,\n\n WS_SERVER_DISCONNECT = 4201,\n WS_TOO_MANY_CLIENTS = 4202,\n}\n\nexport enum ErrorCode {\n // MatchMaking Error Codes\n MATCHMAKE_NO_HANDLER = 4210,\n MATCHMAKE_INVALID_CRITERIA = 4211,\n MATCHMAKE_INVALID_ROOM_ID = 4212,\n MATCHMAKE_UNHANDLED = 4213, // generic exception during onCreate/onJoin\n MATCHMAKE_EXPIRED = 4214, // generic exception during onCreate/onJoin\n\n AUTH_FAILED = 4215,\n APPLICATION_ERROR = 4216,\n\n INVALID_PAYLOAD = 4217,\n}\n\n// Inter-process communication protocol\nexport enum IpcProtocol {\n SUCCESS = 0,\n ERROR = 1,\n TIMEOUT = 2,\n}\n\nconst sendBuffer = Buffer.allocUnsafe(8192);\nconst packr = new Packr();\n// @ts-ignore\npackr.useBuffer(sendBuffer);\n\nexport const getMessageBytes = {\n [Protocol.JOIN_ROOM]: (reconnectionToken: string, serializerId: string, handshake?: Buffer) => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = Protocol.JOIN_ROOM;\n\n utf8Write(sendBuffer, it, reconnectionToken);\n utf8Write(sendBuffer, it, serializerId);\n\n return Buffer.concat([sendBuffer.subarray(0, it.offset), handshake]);\n },\n\n [Protocol.ERROR]: (code: number, message: string = '') => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = Protocol.ERROR;\n\n encode.number(sendBuffer, code, it);\n encode.string(sendBuffer, message, it);\n\n return sendBuffer.subarray(0, it.offset);\n },\n\n [Protocol.ROOM_STATE]: (bytes: number[]) => {\n return [Protocol.ROOM_STATE, ...bytes];\n },\n\n raw: (code: Protocol, type: string | number, message?: any, rawMessage?: Uint8Array | Buffer) => {\n const it: Iterator = { offset: 1 };\n sendBuffer[0] = code;\n\n if (typeof (type) === 'string') {\n encode.string(sendBuffer, type as string, it);\n\n } else {\n encode.number(sendBuffer, type, it);\n }\n\n if (message !== undefined) {\n // @ts-ignore\n return pack(message, 2048 + it.offset); // PR to fix TypeScript types https://github.com/kriszyp/msgpackr/pull/137\n // 2048 = RESERVE_START_SPACE\n\n } else if (rawMessage !== undefined) {\n return Buffer.concat([sendBuffer.subarray(0, it.offset), rawMessage]);\n\n } else {\n return sendBuffer.subarray(0, it.offset);\n }\n },\n\n};\n\nexport function utf8Write(buff: Buffer, it: Iterator, str: string = '') {\n const byteLength = Buffer.byteLength(str, \"utf8\");\n console.log(\"utf8Write\", { byteLength, str });\n\n buff[it.offset++] = byteLength;\n\n let c = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n buff[it.offset++] = c;\n } else if (c < 0x800) {\n buff[it.offset++] = 0xc0 | (c >> 6);\n buff[it.offset++] = 0x80 | (c & 0x3f);\n } else if (c < 0xd800 || c >= 0xe000) {\n buff[it.offset++] = 0xe0 | (c >> 12);\n buff[it.offset++] = 0x80 | (c >> 6) & 0x3f;\n buff[it.offset++] = 0x80 | (c & 0x3f);\n } else {\n i++;\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\n buff[it.offset++] = 0xf0 | (c >> 18);\n buff[it.offset++] = 0x80 | (c >> 12) & 0x3f;\n buff[it.offset++] = 0x80 | (c >> 6) & 0x3f;\n buff[it.offset++] = 0x80 | (c & 0x3f);\n }\n }\n\n it.offset += byteLength;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Protocol", "ErrorCode", "IpcProtocol"]
|
|
7
7
|
}
|
package/build/Room.d.ts
CHANGED
|
@@ -20,8 +20,6 @@ export declare enum RoomInternalState {
|
|
|
20
20
|
CREATED = 1,
|
|
21
21
|
DISPOSING = 2
|
|
22
22
|
}
|
|
23
|
-
type ExtractUserData<T> = T extends ClientArray<infer U> ? U : never;
|
|
24
|
-
type ExtractAuthData<T> = T extends ClientArray<infer _, infer U> ? U : never;
|
|
25
23
|
/**
|
|
26
24
|
* A Room class is meant to implement a game session, and/or serve as the communication channel
|
|
27
25
|
* between a group of clients.
|
|
@@ -29,7 +27,7 @@ type ExtractAuthData<T> = T extends ClientArray<infer _, infer U> ? U : never;
|
|
|
29
27
|
* - Rooms are created on demand during matchmaking by default
|
|
30
28
|
* - Room classes must be exposed using `.define()`
|
|
31
29
|
*/
|
|
32
|
-
export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
30
|
+
export declare abstract class Room<State extends object = any, Metadata = any, UserData = any, AuthData = any> {
|
|
33
31
|
#private;
|
|
34
32
|
/**
|
|
35
33
|
* This property will change on these situations:
|
|
@@ -42,7 +40,8 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
42
40
|
get metadata(): Metadata;
|
|
43
41
|
listing: RoomListingData<Metadata>;
|
|
44
42
|
/**
|
|
45
|
-
*
|
|
43
|
+
* Timing events tied to the room instance.
|
|
44
|
+
* Intervals and timeouts are cleared when the room is disposed.
|
|
46
45
|
*/
|
|
47
46
|
clock: Clock;
|
|
48
47
|
/**
|
|
@@ -72,15 +71,15 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
72
71
|
*
|
|
73
72
|
* @see {@link https://docs.colyseus.io/colyseus/server/room/#client|Client instance}
|
|
74
73
|
*/
|
|
75
|
-
clients: ClientArray
|
|
74
|
+
clients: ClientArray<UserData, AuthData>;
|
|
76
75
|
/** @internal */
|
|
77
|
-
_events: EventEmitter
|
|
76
|
+
_events: EventEmitter<[never]>;
|
|
78
77
|
protected seatReservationTime: number;
|
|
79
78
|
protected reservedSeats: {
|
|
80
79
|
[sessionId: string]: [any, any];
|
|
81
80
|
};
|
|
82
81
|
protected reservedSeatTimeouts: {
|
|
83
|
-
[sessionId: string]: NodeJS.
|
|
82
|
+
[sessionId: string]: NodeJS.Timeout;
|
|
84
83
|
};
|
|
85
84
|
protected _reconnections: {
|
|
86
85
|
[reconnectionToken: string]: [string, Deferred];
|
|
@@ -96,7 +95,7 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
96
95
|
private _lockedExplicitly;
|
|
97
96
|
private _maxClientsReached;
|
|
98
97
|
private _autoDisposeTimeout;
|
|
99
|
-
constructor(
|
|
98
|
+
constructor();
|
|
100
99
|
/**
|
|
101
100
|
* Automatically dispose the room when last client disconnects.
|
|
102
101
|
*
|
|
@@ -132,14 +131,14 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
132
131
|
set roomId(roomId: string);
|
|
133
132
|
onBeforePatch?(state: State): void | Promise<any>;
|
|
134
133
|
onCreate?(options: any): void | Promise<any>;
|
|
135
|
-
onJoin?(client: Client<
|
|
136
|
-
onLeave?(client: Client<
|
|
134
|
+
onJoin?(client: Client<UserData, AuthData>, options?: any, auth?: AuthData): void | Promise<any>;
|
|
135
|
+
onLeave?(client: Client<UserData, AuthData>, consented?: boolean): void | Promise<any>;
|
|
137
136
|
onDispose?(): void | Promise<any>;
|
|
138
137
|
/**
|
|
139
138
|
* onAuth at the instance level will be deprecated in the future.
|
|
140
139
|
* Please use "static onAuth(token, req) instead
|
|
141
140
|
*/
|
|
142
|
-
onAuth(client: Client<
|
|
141
|
+
onAuth(client: Client<UserData, AuthData>, options: any, request?: http.IncomingMessage): any | Promise<any>;
|
|
143
142
|
static onAuth(token: string, req: IncomingMessage): Promise<unknown>;
|
|
144
143
|
/**
|
|
145
144
|
* devMode: When `devMode` is enabled, `onCacheRoom` method is called during
|
|
@@ -206,8 +205,8 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
206
205
|
* Checks whether mutations have occurred in the state, and broadcast them to all connected clients.
|
|
207
206
|
*/
|
|
208
207
|
broadcastPatch(): boolean;
|
|
209
|
-
onMessage<T = any>(messageType: '*', callback: (client: Client<
|
|
210
|
-
onMessage<T = any>(messageType: string | number, callback: (client: Client<
|
|
208
|
+
onMessage<T = any>(messageType: '*', callback: (client: Client<UserData, AuthData>, type: string | number, message: T) => void): any;
|
|
209
|
+
onMessage<T = any>(messageType: string | number, callback: (client: Client<UserData, AuthData>, message: T) => void): any;
|
|
211
210
|
/**
|
|
212
211
|
* Disconnect all connected clients, and then dispose the room.
|
|
213
212
|
*
|
|
@@ -228,9 +227,8 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
228
227
|
*/
|
|
229
228
|
allowReconnection(previousClient: Client, seconds: number | "manual"): Deferred<Client>;
|
|
230
229
|
protected resetAutoDisposeTimeout(timeoutInSeconds?: number): void;
|
|
231
|
-
private broadcastMessageSchema;
|
|
232
230
|
private broadcastMessageType;
|
|
233
|
-
|
|
231
|
+
private sendFullState;
|
|
234
232
|
private _dequeueAfterPatchMessages;
|
|
235
233
|
private _reserveSeat;
|
|
236
234
|
private _disposeIfEmpty;
|
|
@@ -241,4 +239,3 @@ export declare abstract class Room<State extends object = any, Metadata = any> {
|
|
|
241
239
|
private _incrementClientCount;
|
|
242
240
|
private _decrementClientCount;
|
|
243
241
|
}
|
|
244
|
-
export {};
|