@mml-io/3d-web-user-networking 0.6.1 → 0.7.0

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.
Files changed (2) hide show
  1. package/build/index.js.map +1 -1
  2. package/package.json +11 -8
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/UserNetworkingCodec.ts", "../src/messages.ts", "../src/user-networking-settings.ts", "../src/UserNetworkingServer.ts", "../src/ReconnectingWebSocket.ts", "../src/UserNetworkingClient.ts"],
4
4
  "sourcesContent": ["export type UserNetworkingClientUpdate = {\n id: number;\n position: { x: number; y: number; z: number };\n rotation: { quaternionY: number; quaternionW: number };\n state: number;\n};\n\nexport class UserNetworkingCodec {\n static encodeUpdate(update: UserNetworkingClientUpdate): Uint8Array {\n const buffer = new ArrayBuffer(19);\n const dataView = new DataView(buffer);\n dataView.setUint16(0, update.id); // id\n dataView.setFloat32(2, update.position.x); // position.x\n dataView.setFloat32(6, update.position.y); // position.y\n dataView.setFloat32(10, update.position.z); // position.z\n dataView.setInt16(14, update.rotation.quaternionY * 32767); // quaternion.y\n dataView.setInt16(16, update.rotation.quaternionW * 32767); // quaternion.w\n dataView.setUint8(18, update.state); // animationState\n return new Uint8Array(buffer);\n }\n\n static decodeUpdate(buffer: ArrayBuffer): UserNetworkingClientUpdate {\n const dataView = new DataView(buffer);\n const id = dataView.getUint16(0); // id\n const x = dataView.getFloat32(2); // position.x\n const y = dataView.getFloat32(6); // position.y\n const z = dataView.getFloat32(10); // position.z\n const quaternionY = dataView.getInt16(14) / 32767; // quaternion.y\n const quaternionW = dataView.getInt16(16) / 32767; // quaternion.w\n const state = dataView.getUint8(18); // animationState\n const position = { x, y, z };\n const rotation = { quaternionY, quaternionW };\n return { id, position, rotation, state };\n }\n}\n", "export const CONNECTED_MESSAGE_TYPE = \"connected\";\nexport const DISCONNECTED_MESSAGE_TYPE = \"disconnected\";\nexport const IDENTITY_MESSAGE_TYPE = \"identity\";\nexport const PING_MESSAGE_TYPE = \"ping\";\nexport const PONG_MESSAGE_TYPE = \"pong\";\n\nexport type ConnectedMessage = {\n type: typeof CONNECTED_MESSAGE_TYPE;\n id: number;\n};\n\nexport type IdentityMessage = {\n type: typeof IDENTITY_MESSAGE_TYPE;\n id: number;\n};\n\nexport type DisconnectedMessage = {\n type: typeof DISCONNECTED_MESSAGE_TYPE;\n id: number;\n};\n\nexport type FromServerPingMessage = {\n type: typeof PING_MESSAGE_TYPE;\n};\n\nexport type FromServerMessage =\n | ConnectedMessage\n | IdentityMessage\n | DisconnectedMessage\n | FromServerPingMessage;\n\nexport type FromClientPongMessage = {\n type: typeof PONG_MESSAGE_TYPE;\n};\n\nexport type FromClientMessage = FromClientPongMessage;\n", "export const pingPongRate: number = 1500;\nexport const heartBeatRate: number = 3500;\nexport const packetsUpdateRate: number = (1 / 30) * 1000;\n", "import WebSocket from \"ws\";\n\nimport {\n CONNECTED_MESSAGE_TYPE,\n DISCONNECTED_MESSAGE_TYPE,\n FromClientMessage,\n FromServerMessage,\n IDENTITY_MESSAGE_TYPE,\n} from \"./messages\";\nimport { heartBeatRate, packetsUpdateRate, pingPongRate } from \"./user-networking-settings\";\nimport { UserNetworkingClientUpdate, UserNetworkingCodec } from \"./UserNetworkingCodec\";\n\nexport type Client = {\n socket: WebSocket;\n update: UserNetworkingClientUpdate;\n};\n\nconst WebSocketOpenStatus = 1;\n\nexport class UserNetworkingServer {\n private clients: Map<number, Client> = new Map();\n private clientLastPong: Map<number, number> = new Map();\n\n constructor() {\n setInterval(this.sendUpdates.bind(this), packetsUpdateRate);\n setInterval(this.pingClients.bind(this), pingPongRate);\n setInterval(this.heartBeat.bind(this), heartBeatRate);\n }\n\n heartBeat() {\n const now = Date.now();\n this.clientLastPong.forEach((clientLastPong, id) => {\n if (now - clientLastPong > heartBeatRate) {\n this.clients.delete(id);\n this.clientLastPong.delete(id);\n const disconnectMessage = JSON.stringify({\n id,\n type: DISCONNECTED_MESSAGE_TYPE,\n } as FromServerMessage);\n for (const { socket: otherSocket } of this.clients.values()) {\n if (otherSocket.readyState === WebSocketOpenStatus) {\n otherSocket.send(disconnectMessage);\n }\n }\n }\n });\n }\n\n pingClients() {\n this.clients.forEach((client) => {\n if (client.socket.readyState === WebSocketOpenStatus) {\n client.socket.send(JSON.stringify({ type: \"ping\" } as FromServerMessage));\n }\n });\n }\n\n getId(): number {\n let id = 1;\n while (this.clients.has(id)) id++;\n return id;\n }\n\n connectClient(socket: WebSocket) {\n const id = this.getId();\n console.log(`Client ID: ${id} joined`);\n\n const connectMessage = JSON.stringify({\n id,\n type: CONNECTED_MESSAGE_TYPE,\n } as FromServerMessage);\n for (const { socket: otherSocket } of this.clients.values()) {\n if (otherSocket.readyState === WebSocketOpenStatus) {\n otherSocket.send(connectMessage);\n }\n }\n\n const identityMessage = JSON.stringify({\n id,\n type: IDENTITY_MESSAGE_TYPE,\n } as FromServerMessage);\n socket.send(identityMessage);\n\n for (const { update } of this.clients.values()) {\n socket.send(UserNetworkingCodec.encodeUpdate(update));\n }\n\n this.clients.set(id, {\n socket: socket as WebSocket,\n update: {\n id,\n position: { x: 0, y: 0, z: 0 },\n rotation: { quaternionY: 0, quaternionW: 1 },\n state: 0,\n },\n });\n\n socket.on(\"message\", (message: WebSocket.Data, _isBinary: boolean) => {\n if (message instanceof Buffer) {\n const arrayBuffer = new Uint8Array(message).buffer;\n const update = UserNetworkingCodec.decodeUpdate(arrayBuffer);\n update.id = id;\n if (this.clients.get(id) !== undefined) {\n this.clients.get(id)!.update = update;\n }\n } else {\n try {\n const data = JSON.parse(message as string) as FromClientMessage;\n if (data.type === \"pong\") {\n this.clientLastPong.set(id, Date.now());\n }\n } catch (e) {\n console.error(\"Error parsing JSON message\", message, e);\n }\n }\n });\n\n socket.on(\"close\", () => {\n console.log(\"Client disconnected\", id);\n this.clients.delete(id);\n const disconnectMessage = JSON.stringify({\n id,\n type: DISCONNECTED_MESSAGE_TYPE,\n } as FromServerMessage);\n for (const [clientId, { socket: otherSocket }] of this.clients) {\n if (otherSocket.readyState === WebSocketOpenStatus) {\n otherSocket.send(disconnectMessage);\n }\n }\n });\n }\n\n sendUpdates(): void {\n for (const [clientId, client] of this.clients) {\n const update = client.update;\n const encodedUpdate = UserNetworkingCodec.encodeUpdate(update);\n\n for (const [otherClientId, otherClient] of this.clients) {\n if (otherClientId !== clientId && otherClient.socket.readyState === WebSocketOpenStatus) {\n otherClient.socket.send(encodedUpdate);\n }\n }\n }\n }\n}\n", "import { UserNetworkingClientUpdate, UserNetworkingCodec } from \"./UserNetworkingCodec\";\n\nexport type WebsocketFactory = (url: string) => WebSocket;\n\nexport enum WebsocketStatus {\n Connecting,\n Connected,\n Reconnecting,\n Disconnected,\n}\n\nconst startingBackoffTimeMilliseconds = 100;\nconst maximumBackoffTimeMilliseconds = 10000;\nconst maximumWebsocketConnectionTimeout = 5000;\n\nexport abstract class ReconnectingWebSocket {\n private websocket: WebSocket | null = null;\n private status: WebsocketStatus | null = null;\n private receivedMessageSinceOpen = false;\n private backoffTime = startingBackoffTimeMilliseconds;\n private stopped = false;\n\n constructor(\n private url: string,\n private websocketFactory: WebsocketFactory,\n private statusUpdateCallback: (status: WebsocketStatus) => void,\n ) {\n this.setStatus(WebsocketStatus.Connecting);\n this.startWebSocketConnectionAttempt();\n }\n\n private setStatus(status: WebsocketStatus) {\n if (this.status !== status) {\n this.status = status;\n this.statusUpdateCallback(status);\n }\n }\n\n public sendUpdate(update: UserNetworkingClientUpdate): void {\n if (!this.websocket) {\n console.error(\"Not connected to the server\");\n return;\n }\n const encodedUpdate = UserNetworkingCodec.encodeUpdate(update);\n this.send(encodedUpdate);\n }\n\n private async startWebSocketConnectionAttempt() {\n if (this.stopped) {\n return;\n }\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (this.stopped) {\n return;\n }\n try {\n await this.createWebsocketWithTimeout(maximumWebsocketConnectionTimeout);\n break;\n } catch (e) {\n // Connection failed, retry with backoff\n this.setStatus(WebsocketStatus.Reconnecting);\n await this.waitBackoffTime();\n }\n }\n }\n\n private async waitBackoffTime(): Promise<void> {\n console.warn(`Websocket connection to '${this.url}' failed: retrying in ${this.backoffTime}ms`);\n await new Promise((resolve) => setTimeout(resolve, this.backoffTime));\n this.backoffTime = Math.min(\n // Introduce a small amount of randomness to prevent clients from retrying in lockstep\n this.backoffTime * (1.5 + Math.random() * 0.5),\n maximumBackoffTimeMilliseconds,\n );\n }\n\n protected abstract handleIncomingWebsocketMessage(message: MessageEvent): void;\n\n protected send(message: object | Uint8Array): void {\n if (!this.websocket) {\n console.error(\"Not connected to the server\");\n return;\n }\n if (message instanceof Uint8Array) {\n this.websocket.send(message);\n } else {\n this.websocket.send(JSON.stringify(message));\n }\n }\n\n private createWebsocketWithTimeout(timeout: number): Promise<WebSocket> {\n return new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error(\"websocket connection timed out\"));\n }, timeout);\n const websocket = this.websocketFactory(this.url);\n websocket.binaryType = \"arraybuffer\";\n websocket.addEventListener(\"open\", () => {\n clearTimeout(timeoutId);\n this.receivedMessageSinceOpen = false;\n this.websocket = websocket;\n this.setStatus(WebsocketStatus.Connected);\n\n websocket.addEventListener(\"message\", (event) => {\n if (websocket !== this.websocket) {\n console.log(\"Ignoring websocket message event because it is no longer current\");\n websocket.close();\n return;\n }\n if (!this.receivedMessageSinceOpen) {\n this.receivedMessageSinceOpen = true;\n }\n this.handleIncomingWebsocketMessage(event);\n });\n\n const onWebsocketClose = async () => {\n if (websocket !== this.websocket) {\n console.log(\"Ignoring websocket close event because it is no longer current\");\n return;\n }\n this.websocket = null;\n if (this.stopped) {\n // This closing is expected. The client closed the websocket.\n this.setStatus(WebsocketStatus.Disconnected);\n return;\n }\n if (!this.receivedMessageSinceOpen) {\n // The websocket did not deliver any contents. It may have been successfully opened, but immediately closed. This client should back off to prevent this happening in a rapid loop.\n await this.waitBackoffTime();\n }\n // The websocket closed unexpectedly. Try to reconnect.\n this.setStatus(WebsocketStatus.Reconnecting);\n this.startWebSocketConnectionAttempt();\n };\n\n websocket.addEventListener(\"close\", (e) => {\n if (websocket !== this.websocket) {\n console.warn(\"Ignoring websocket close event because it is no longer current\");\n return;\n }\n console.log(\"NetworkedDOMWebsocket close\", e);\n onWebsocketClose();\n });\n websocket.addEventListener(\"error\", (e) => {\n if (websocket !== this.websocket) {\n console.log(\"Ignoring websocket error event because it is no longer current\");\n return;\n }\n console.error(\"NetworkedDOMWebsocket error\", e);\n onWebsocketClose();\n });\n\n resolve(websocket);\n });\n websocket.addEventListener(\"error\", (e) => {\n clearTimeout(timeoutId);\n reject(e);\n });\n });\n }\n\n public stop() {\n this.stopped = true;\n if (this.websocket !== null) {\n this.websocket.close();\n this.websocket = null;\n }\n }\n}\n", "import {\n CONNECTED_MESSAGE_TYPE,\n DISCONNECTED_MESSAGE_TYPE,\n FromClientMessage,\n FromServerMessage,\n IDENTITY_MESSAGE_TYPE,\n PING_MESSAGE_TYPE,\n} from \"./messages\";\nimport { ReconnectingWebSocket, WebsocketFactory, WebsocketStatus } from \"./ReconnectingWebSocket\";\nimport { UserNetworkingClientUpdate, UserNetworkingCodec } from \"./UserNetworkingCodec\";\n\nexport class UserNetworkingClient extends ReconnectingWebSocket {\n constructor(\n url: string,\n websocketFactory: WebsocketFactory,\n statusUpdateCallback: (status: WebsocketStatus) => void,\n private setIdentityCallback: (id: number) => void,\n private clientUpdate: (id: number, update: null | UserNetworkingClientUpdate) => void,\n ) {\n super(url, websocketFactory, statusUpdateCallback);\n }\n\n public sendUpdate(update: UserNetworkingClientUpdate): void {\n const encodedUpdate = UserNetworkingCodec.encodeUpdate(update);\n this.send(encodedUpdate);\n }\n\n protected handleIncomingWebsocketMessage(message: MessageEvent) {\n if (typeof message.data === \"string\") {\n const parsed = JSON.parse(message.data) as FromServerMessage;\n switch (parsed.type) {\n case IDENTITY_MESSAGE_TYPE:\n console.log(`Assigned ID: ${parsed.id}`);\n this.setIdentityCallback(parsed.id);\n break;\n case CONNECTED_MESSAGE_TYPE:\n console.log(`Client ID: ${parsed.id} joined`);\n break;\n case DISCONNECTED_MESSAGE_TYPE:\n console.log(`Client ID: ${parsed.id} left`);\n this.clientUpdate(parsed.id, null);\n break;\n case PING_MESSAGE_TYPE: {\n this.send({ type: \"pong\" } as FromClientMessage);\n break;\n }\n default:\n console.warn(\"unknown message type received\", parsed);\n }\n } else if (message.data instanceof ArrayBuffer) {\n const userNetworkingClientUpdate = UserNetworkingCodec.decodeUpdate(message.data);\n this.clientUpdate(userNetworkingClientUpdate.id, userNetworkingClientUpdate);\n } else {\n console.error(\"Unhandled message type\", message.data);\n }\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["WebsocketStatus"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@mml-io/3d-web-user-networking",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
4
7
  "main": "./build/index.js",
5
8
  "types": "./build/index.d.ts",
6
9
  "type": "module",
@@ -8,11 +11,11 @@
8
11
  "/build"
9
12
  ],
10
13
  "scripts": {
11
- "build": "rimraf ./build && node ./build.js --build",
12
- "iterate": "node ./build.js --watch",
14
+ "build": "tsx ./build.ts --build",
15
+ "iterate": "tsx ./build.ts --watch",
13
16
  "type-check": "tsc --noEmit",
14
- "lint": "eslint \"./src/**/*.{ts,}\" --max-warnings 0",
15
- "lint:fix": "eslint \"./src/**/*.{ts,}\" --fix",
17
+ "lint": "eslint \"./{src,test}/**/*.{js,jsx,ts,tsx}\" --max-warnings 0",
18
+ "lint-fix": "eslint \"./{src,test}/**/*.{js,jsx,ts,tsx}\" --fix",
16
19
  "test": "jest"
17
20
  },
18
21
  "dependencies": {
@@ -21,10 +24,10 @@
21
24
  "devDependencies": {
22
25
  "@types/express": "^4.17.17",
23
26
  "@types/express-ws": "^3.0.1",
24
- "@types/node": "^20.1.7",
25
- "@types/ws": "^8.5.4",
27
+ "@types/node": "^20.5.9",
28
+ "@types/ws": "^8.5.5",
26
29
  "express": "4.18.2",
27
30
  "express-ws": "5.0.2"
28
31
  },
29
- "gitHead": "a000246cbe624bc304dd21de766fbceb8c9e0d20"
32
+ "gitHead": "e298772ca5da974f3ef800c05d0e4dff0f52677b"
30
33
  }