@spider-mesh/ws 2.0.44 → 2.0.145
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 +53 -16
- package/build/src/BaseWebsocketTransporter.d.ts +6 -8
- package/build/src/BaseWebsocketTransporter.js +47 -50
- package/build/src/BaseWebsocketTransporter.js.map +1 -1
- package/build/src/WebsocketRelayServer.js +119 -48
- package/build/src/WebsocketRelayServer.js.map +1 -1
- package/build/src/websocketProtocol.d.ts +5 -25
- package/build/src/websocketProtocol.js.map +1 -1
- package/package.json +5 -5
- package/tsconfig.json +1 -0
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ It contains:
|
|
|
9
9
|
|
|
10
10
|
The package is ESM-only.
|
|
11
11
|
|
|
12
|
+
> **New here?** Start with the [Getting Started walkthrough](GETTING_STARTED.md) — a 3-terminal runnable example (relay + provider + client, no registry).
|
|
13
|
+
|
|
12
14
|
## Install
|
|
13
15
|
|
|
14
16
|
```bash
|
|
@@ -47,8 +49,11 @@ import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
|
|
|
47
49
|
|
|
48
50
|
Create one `WebsocketTransporter`, connect it to the relay, then register that shared transporter directly on `SpiderMesh`.
|
|
49
51
|
|
|
52
|
+
No registry is needed — the relay does the routing, and the transporter exposes relay
|
|
53
|
+
discovery to core as a `ServiceDirectory`.
|
|
54
|
+
|
|
50
55
|
```ts
|
|
51
|
-
import {
|
|
56
|
+
import { SpiderMesh } from '@spider-mesh/core'
|
|
52
57
|
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
53
58
|
|
|
54
59
|
const transporter = new WebsocketTransporter({
|
|
@@ -58,13 +63,11 @@ const transporter = new WebsocketTransporter({
|
|
|
58
63
|
|
|
59
64
|
transporter.connect('ws://127.0.0.1:8787')
|
|
60
65
|
|
|
61
|
-
const
|
|
62
|
-
const mesh = new SpiderMesh(registry)
|
|
63
|
-
|
|
66
|
+
const mesh = new SpiderMesh()
|
|
64
67
|
mesh.registerTransporter(transporter)
|
|
65
68
|
```
|
|
66
69
|
|
|
67
|
-
`SpiderMesh.registerTransporter()`
|
|
70
|
+
`SpiderMesh.registerTransporter()` links all supported capabilities on the same transporter instance, so one `WebsocketTransporter` serves RPC, discovery, pubsub, and `ServiceDirectory` (availability) together — no `Registry` required.
|
|
68
71
|
|
|
69
72
|
## Relay Server
|
|
70
73
|
|
|
@@ -81,6 +84,17 @@ console.log(`WebSocket relay listening on ws://127.0.0.1:${server.port}`)
|
|
|
81
84
|
|
|
82
85
|
The relay forwards discovery, RPC, and pubsub frames. It does not host application services.
|
|
83
86
|
|
|
87
|
+
Options:
|
|
88
|
+
|
|
89
|
+
| Option | Type | Default | Description |
|
|
90
|
+
| --- | --- | --- | --- |
|
|
91
|
+
| `port` | `number` | `8787` | Port the relay listens on. `server.port` returns the bound port (`number \| null`). |
|
|
92
|
+
| `host` | `string` | unset | Host/interface to bind. |
|
|
93
|
+
| `path` | `string` | unset | HTTP path the underlying `ws` server accepts upgrades on. |
|
|
94
|
+
| `isServerConnection` | `(socket, request) => boolean` | unset | Gate / classify each incoming connection. Return `true` for connections that participate in discovery and RPC routing (i.e. real mesh nodes), `false` for passive clients. This is the relay's access-control hook — there is no separate `auth` option. |
|
|
95
|
+
|
|
96
|
+
Call `server.close()` to stop the relay.
|
|
97
|
+
|
|
84
98
|
## Provider Example
|
|
85
99
|
|
|
86
100
|
```ts
|
|
@@ -122,26 +136,28 @@ Current responsibilities:
|
|
|
122
136
|
|
|
123
137
|
- maintain relay connections with automatic reconnect
|
|
124
138
|
- expose `status$` for per-URL connection status
|
|
125
|
-
- send and receive RPC frames
|
|
126
|
-
- propagate discovery `hello` and `offline` frames
|
|
139
|
+
- send and receive RPC frames; the relay routes by `destination_node_id` when present, otherwise selects a provider by service name with round-robin
|
|
140
|
+
- propagate discovery `hello` and `offline` frames; re-emits a `discovered` event only when a known node's advertised service list actually changes (duplicate `hello`s with an unchanged service list are suppressed)
|
|
127
141
|
- forward pubsub messages and subscription changes
|
|
128
142
|
- integrate directly with `mesh.registerTransporter(transporter)`
|
|
129
143
|
|
|
130
144
|
Current send contract:
|
|
131
145
|
|
|
132
146
|
```ts
|
|
133
|
-
send(packet: RpcRequestPacket |
|
|
147
|
+
send(packet: RpcRequestPacket | RpcResponsePacket): Promise<{ cancel: () => void }>
|
|
134
148
|
```
|
|
135
149
|
|
|
136
|
-
For `request` packets, the returned `cancel()` sends a
|
|
150
|
+
For `request` packets, the returned `cancel()` sends a cancel frame to the relay over the same socket. The relay routes it to the provider via an internal `request_id → socket` map. The provider stops the running Observable on receipt. `SpiderMesh` calls `cancel()` automatically when a subscriber unsubscribes before the stream completes.
|
|
151
|
+
|
|
152
|
+
`MICROSERVICE_OFFLINE` is produced by the **relay**, not the transporter: when the relay cannot route a `request` to any provider for the service, it returns a `MICROSERVICE_OFFLINE` RPC response. It therefore arrives **asynchronously as a response packet**. The transporter itself is not registry-aware and does not throw synchronously — it forwards every frame to the relay over an open socket.
|
|
137
153
|
|
|
138
|
-
|
|
154
|
+
Supported options (all optional, with defaults):
|
|
139
155
|
|
|
140
|
-
|
|
156
|
+
- `heartbeatIntervalMs` — default `30000`
|
|
157
|
+
- `reconnectIntervalMs` — default `1000`
|
|
158
|
+
- `unsubscribeDelayMs` — default `10000`
|
|
141
159
|
|
|
142
|
-
|
|
143
|
-
- `reconnectIntervalMs`
|
|
144
|
-
- `unsubscribeDelayMs`
|
|
160
|
+
`connect(url)` is idempotent per URL and may be called for **multiple relay URLs**; the transporter maintains one connection per URL and keys `status$` by URL. Call `close(url)` to drop a specific relay connection.
|
|
145
161
|
|
|
146
162
|
`status$` is a `BehaviorSubject<Map<string, string>>` with values such as `connecting`, `connected`, `error`, and `not_connected`.
|
|
147
163
|
|
|
@@ -171,10 +187,10 @@ The package includes:
|
|
|
171
187
|
- provider reconnect coverage
|
|
172
188
|
- failover coverage (3 nodes → kill 1 → 2 nodes continue serving)
|
|
173
189
|
|
|
174
|
-
Run the
|
|
190
|
+
Run the e2e suite with:
|
|
175
191
|
|
|
176
192
|
```bash
|
|
177
|
-
bun test
|
|
193
|
+
bun run test:e2e
|
|
178
194
|
```
|
|
179
195
|
|
|
180
196
|
Build with:
|
|
@@ -183,6 +199,27 @@ Build with:
|
|
|
183
199
|
bun run build
|
|
184
200
|
```
|
|
185
201
|
|
|
202
|
+
> There is no bare `test` script. The canonical command is `bun run test:e2e`; individual scripts are available as `test:websocket`, `test:websocket:e2e`, `test:websocket:e2e:matrix`, and `test:websocket:e2e:reverse`.
|
|
203
|
+
|
|
204
|
+
## Usage Guidance
|
|
205
|
+
|
|
206
|
+
### Should
|
|
207
|
+
|
|
208
|
+
- **Start the relay before any provider or client.** Nodes discover each other through the relay; with no relay up, `connect()` just retries on `reconnectIntervalMs`.
|
|
209
|
+
- **Use WebSocket transport when nodes cannot share multicast** — across subnets, cloud VPCs, browsers, mobile apps, or the public internet. This is the right choice where `@spider-mesh/tcp` cannot reach.
|
|
210
|
+
- **Import the entry point that matches the runtime:** `/node` for Node and Bun, `/browser` for web, `/react-native` for RN, `/relay-server` for the relay process (Node/Bun only). All three transporter entries export a class named `WebsocketTransporter`.
|
|
211
|
+
- **Gate connections with `isServerConnection`** on any relay exposed beyond localhost. Treat it as the authentication/authorization hook — validate a token from the upgrade `request` and return `false` to reject or down-classify untrusted sockets.
|
|
212
|
+
- **Reuse one `WebsocketTransporter` per node** for RPC, discovery, and pubsub; `registerTransporter()` links all three capabilities on the same instance. You may `connect()` it to several relays for redundancy.
|
|
213
|
+
- **Call `transporter.close(url)` / `server.close()` on shutdown** to release sockets cleanly.
|
|
214
|
+
|
|
215
|
+
### Should not
|
|
216
|
+
|
|
217
|
+
- **Do not run the relay in the browser or React Native.** `/relay-server` needs a server runtime (Node/Bun); only the transporter runs in those environments.
|
|
218
|
+
- **Do not expect `send()` to throw `MICROSERVICE_OFFLINE` synchronously.** Offline is reported by the relay as an asynchronous RPC response — handle it via the RPC result/timeout path, not a `try/catch` around the call site.
|
|
219
|
+
- **Do not expose a relay without `isServerConnection` on an untrusted network.** Without it, any client that can reach the port joins routing.
|
|
220
|
+
- **Do not assume a single relay.** The transporter supports multiple relay URLs and per-URL `status$`; design reconnection/monitoring around the per-URL map, not one global flag.
|
|
221
|
+
- **Do not import from the package root.** There is no `.` export — always use a runtime-specific subpath.
|
|
222
|
+
|
|
186
223
|
## Notes
|
|
187
224
|
|
|
188
225
|
- The package root is not exported; use runtime-specific subpaths.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
2
|
-
import type { DiscoveryTransporter, MdnsMessage,
|
|
2
|
+
import type { DiscoveryTransporter, MdnsMessage, NodeRef, PubsubTransporter, RpcRequestPacket, RpcResponsePacket, RpcTransporter, ServiceDirectory, SpiderMeshNode } from '@spider-mesh/core';
|
|
3
3
|
export type WebsocketTransporterOptions = {
|
|
4
4
|
heartbeatIntervalMs?: number;
|
|
5
5
|
reconnectIntervalMs?: number;
|
|
@@ -16,26 +16,24 @@ export type WebSocketLike = {
|
|
|
16
16
|
terminate?(): void;
|
|
17
17
|
};
|
|
18
18
|
export type WebsocketConnectionStatus = 'connecting' | 'connected' | 'error' | 'not_connected';
|
|
19
|
-
export declare abstract class BaseWebsocketTransporter extends Subject<any> implements RpcTransporter, DiscoveryTransporter, PubsubTransporter {
|
|
19
|
+
export declare abstract class BaseWebsocketTransporter extends Subject<any> implements RpcTransporter, DiscoveryTransporter, PubsubTransporter, ServiceDirectory {
|
|
20
20
|
#private;
|
|
21
21
|
protected options: WebsocketTransporterOptions;
|
|
22
22
|
readonly status$: BehaviorSubject<Map<string, string>>;
|
|
23
23
|
constructor(options?: WebsocketTransporterOptions);
|
|
24
|
-
linkRegistry(registry: Registry): void;
|
|
25
24
|
connect(url: string): void;
|
|
26
25
|
close(url: string): void;
|
|
27
|
-
send(packet: RpcRequestPacket |
|
|
26
|
+
send(packet: RpcRequestPacket | RpcResponsePacket): Promise<{
|
|
28
27
|
cancel: () => void;
|
|
29
28
|
}>;
|
|
30
|
-
broadcast(data: MdnsMessage<
|
|
29
|
+
broadcast(data: MdnsMessage<SpiderMeshNode>): Promise<void>;
|
|
31
30
|
publish<T>(topic: string, data: T): Promise<void>;
|
|
32
31
|
listen<T>(topic: string): Observable<T>;
|
|
33
32
|
protected abstract createSocket(url: string): Promise<WebSocketLike> | WebSocketLike;
|
|
34
|
-
private on_request;
|
|
35
|
-
private on_response;
|
|
36
|
-
private on_cancel;
|
|
37
33
|
private on_rpc;
|
|
38
34
|
private on_hello;
|
|
39
35
|
private on_offline;
|
|
36
|
+
watchService(service: string): Observable<NodeRef[]>;
|
|
37
|
+
listNodes(service: string): NodeRef[];
|
|
40
38
|
private on_publish;
|
|
41
39
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { decode, encode } from '@msgpack/msgpack';
|
|
2
|
-
import { BehaviorSubject, defer, finalize, from, fromEvent, ignoreElements, map, merge, ReplaySubject, retry, share, Subject, switchMap, take, takeUntil, tap, throwError, timer } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, defer, distinctUntilChanged, finalize, from, fromEvent, ignoreElements, map, merge, ReplaySubject, retry, share, Subject, switchMap, take, takeUntil, tap, throwError, timer } from 'rxjs';
|
|
3
3
|
import { decodeRelayFrame, encodeRelayFrame, normalizeRelayRawData } from './websocketProtocol.js';
|
|
4
4
|
const WEBSOCKET_CONNECTING = 0;
|
|
5
5
|
const WEBSOCKET_OPEN = 1;
|
|
@@ -8,16 +8,14 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
8
8
|
#connections = new Map();
|
|
9
9
|
#topics = new Map();
|
|
10
10
|
#nodes = new Map();
|
|
11
|
+
#nodes$ = new BehaviorSubject([]);
|
|
11
12
|
#me$ = new ReplaySubject(1);
|
|
12
|
-
#
|
|
13
|
+
#localNodeId;
|
|
13
14
|
status$ = new BehaviorSubject(new Map());
|
|
14
15
|
constructor(options = {}) {
|
|
15
16
|
super();
|
|
16
17
|
this.options = options;
|
|
17
18
|
}
|
|
18
|
-
linkRegistry(registry) {
|
|
19
|
-
this.#registry = registry;
|
|
20
|
-
}
|
|
21
19
|
connect(url) {
|
|
22
20
|
if (this.#connections.has(url))
|
|
23
21
|
return;
|
|
@@ -37,24 +35,17 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
async send(packet) {
|
|
40
|
-
const
|
|
41
|
-
?? (packet.kind === 'request' ? (this.#registry?.pickRpcNode(packet.service) ?? undefined) : undefined);
|
|
42
|
-
if (packet.kind === 'request' && !resolvedNodeId && this.#registry) {
|
|
43
|
-
throw { code: 'MICROSERVICE_OFFLINE', message: `No available node for service ${packet.service}` };
|
|
44
|
-
}
|
|
45
|
-
const socket = this.#selectRpcSocket(resolvedNodeId);
|
|
38
|
+
const socket = this.#selectRpcSocket(packet.destination_node_id);
|
|
46
39
|
await this.#sendFrame(socket, {
|
|
47
|
-
type:
|
|
48
|
-
|
|
49
|
-
payload: this.#encodeRpcPacket(packet),
|
|
40
|
+
type: 'rpc',
|
|
41
|
+
data: packet,
|
|
50
42
|
});
|
|
51
43
|
if (packet.kind === 'request') {
|
|
52
44
|
return {
|
|
53
45
|
cancel: () => {
|
|
54
|
-
void this
|
|
55
|
-
|
|
56
|
-
request_id: packet.request_id,
|
|
57
|
-
destination_node_id: resolvedNodeId,
|
|
46
|
+
void this.#sendFrame(socket, {
|
|
47
|
+
type: 'rpc',
|
|
48
|
+
data: { kind: 'cancel', request_id: packet.request_id },
|
|
58
49
|
}).catch(() => undefined);
|
|
59
50
|
}
|
|
60
51
|
};
|
|
@@ -66,6 +57,7 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
66
57
|
...data.node,
|
|
67
58
|
node_id: data.sender_id,
|
|
68
59
|
};
|
|
60
|
+
this.#localNodeId = localNode.node_id;
|
|
69
61
|
this.#me$.next(localNode);
|
|
70
62
|
}
|
|
71
63
|
async publish(topic, data) {
|
|
@@ -143,36 +135,56 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
143
135
|
delay: () => timer(this.options.reconnectIntervalMs || 1000),
|
|
144
136
|
}));
|
|
145
137
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
on_response(_url, frame) {
|
|
150
|
-
this.on_rpc(frame);
|
|
151
|
-
}
|
|
152
|
-
on_cancel(_url, frame) {
|
|
153
|
-
this.on_rpc(frame);
|
|
154
|
-
}
|
|
155
|
-
on_rpc(frame) {
|
|
156
|
-
const packet = this.#decodeRpcPacket(frame);
|
|
157
|
-
if (!packet)
|
|
138
|
+
on_rpc(_url, frame) {
|
|
139
|
+
if (frame.type !== 'rpc')
|
|
158
140
|
return;
|
|
159
|
-
this.next({ rpc:
|
|
141
|
+
this.next({ rpc: frame.data });
|
|
160
142
|
}
|
|
161
143
|
on_hello(url, frame) {
|
|
162
144
|
const node = frame.me;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
});
|
|
145
|
+
if (node.node_id === this.#localNodeId)
|
|
146
|
+
return;
|
|
147
|
+
const existing = this.#nodes.get(node.node_id);
|
|
148
|
+
this.#nodes.set(node.node_id, { node, relayUrl: url });
|
|
149
|
+
this.#publishNodes();
|
|
150
|
+
if (existing && this.#hasSameServices(existing.node, node))
|
|
151
|
+
return;
|
|
167
152
|
this.next({ discovered: node });
|
|
168
153
|
}
|
|
154
|
+
#hasSameServices(a, b) {
|
|
155
|
+
const aKeys = Object.keys(a.services || {}).sort();
|
|
156
|
+
const bKeys = Object.keys(b.services || {}).sort();
|
|
157
|
+
if (aKeys.length !== bKeys.length)
|
|
158
|
+
return false;
|
|
159
|
+
return aKeys.every((k, i) => k === bKeys[i]);
|
|
160
|
+
}
|
|
169
161
|
on_offline(url, frame) {
|
|
170
162
|
const current = this.#nodes.get(frame.node_id);
|
|
171
163
|
if (current?.relayUrl === url) {
|
|
172
164
|
this.#nodes.delete(frame.node_id);
|
|
165
|
+
this.#publishNodes();
|
|
173
166
|
}
|
|
174
167
|
this.next({ offline: frame.node_id });
|
|
175
168
|
}
|
|
169
|
+
#publishNodes() {
|
|
170
|
+
this.#nodes$.next([...this.#nodes.values()]);
|
|
171
|
+
}
|
|
172
|
+
#nodesForService(nodes, service) {
|
|
173
|
+
return nodes
|
|
174
|
+
.filter(known => !!known.node.services && service in known.node.services)
|
|
175
|
+
.map(known => known.node);
|
|
176
|
+
}
|
|
177
|
+
watchService(service) {
|
|
178
|
+
return this.#nodes$.pipe(map(nodes => this.#nodesForService(nodes, service)), distinctUntilChanged((prev, curr) => {
|
|
179
|
+
if (prev.length !== curr.length)
|
|
180
|
+
return false;
|
|
181
|
+
const prevIds = new Set(prev.map(n => n.node_id));
|
|
182
|
+
return curr.every(n => prevIds.has(n.node_id));
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
listNodes(service) {
|
|
186
|
+
return this.#nodesForService([...this.#nodes.values()], service);
|
|
187
|
+
}
|
|
176
188
|
on_publish(_url, frame) {
|
|
177
189
|
const topic = this.#topics.get(frame.topic);
|
|
178
190
|
if (!topic)
|
|
@@ -217,21 +229,6 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
217
229
|
topics,
|
|
218
230
|
});
|
|
219
231
|
}
|
|
220
|
-
#encodeRpcPacket(packet) {
|
|
221
|
-
const { kind: _, ...payload } = packet;
|
|
222
|
-
return encode(payload);
|
|
223
|
-
}
|
|
224
|
-
#decodeRpcPacket(frame) {
|
|
225
|
-
try {
|
|
226
|
-
return {
|
|
227
|
-
kind: frame.type,
|
|
228
|
-
...decode(frame.payload),
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
catch {
|
|
232
|
-
return null;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
232
|
async #sendFrame(socket, frame) {
|
|
236
233
|
if (!socket || socket.readyState !== WEBSOCKET_OPEN) {
|
|
237
234
|
throw new Error('WebSocket is not connected');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWebsocketTransporter.js","sourceRoot":"","sources":["../../src/BaseWebsocketTransporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseWebsocketTransporter.js","sourceRoot":"","sources":["../../src/BaseWebsocketTransporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,14 @@ export class WebsocketRelayServer {
|
|
|
7
7
|
#subscription = Subscription.EMPTY;
|
|
8
8
|
#nodes = new Map();
|
|
9
9
|
#listeners = new Map();
|
|
10
|
+
#services = new Map();
|
|
11
|
+
#serviceRrIndex = new Map();
|
|
12
|
+
#pendingRequests = new Map();
|
|
10
13
|
constructor(options = {}) {
|
|
11
14
|
this.#server = new WsServer({
|
|
12
15
|
host: options.host,
|
|
13
16
|
path: options.path,
|
|
14
|
-
port: options.port
|
|
17
|
+
port: options.port ?? 8787,
|
|
15
18
|
});
|
|
16
19
|
this.#subscription = fromEvent(this.#server, 'connection').pipe(mergeMap(([socket, request]) => this.on_connection(socket, request, options))).subscribe();
|
|
17
20
|
}
|
|
@@ -43,36 +46,66 @@ export class WebsocketRelayServer {
|
|
|
43
46
|
if (!frame)
|
|
44
47
|
return;
|
|
45
48
|
if (frame.type === 'hello') {
|
|
46
|
-
const
|
|
47
|
-
if (!
|
|
49
|
+
const nodeId = frame.me?.node_id;
|
|
50
|
+
if (!nodeId)
|
|
48
51
|
return;
|
|
49
|
-
const previous = this.#getSocketMetadata(this.#nodes.get(
|
|
50
|
-
this.#registerNode(socket,
|
|
51
|
-
if (this.#shouldSyncDiscovery(previous,
|
|
52
|
+
const previous = this.#getSocketMetadata(this.#nodes.get(nodeId));
|
|
53
|
+
this.#registerNode(socket, frame, nodeId);
|
|
54
|
+
if (this.#shouldSyncDiscovery(previous, frame.me)) {
|
|
52
55
|
this.#syncServerConnections();
|
|
53
56
|
}
|
|
54
57
|
return;
|
|
55
58
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
if (frame.type === 'rpc') {
|
|
60
|
+
const packet = frame.data;
|
|
61
|
+
if (packet.kind === 'response') {
|
|
62
|
+
if (packet.destination_node_id) {
|
|
63
|
+
const target = this.#nodes.get(packet.destination_node_id);
|
|
64
|
+
if (target?.readyState === WebSocket.OPEN) {
|
|
65
|
+
target.send(encodeRelayFrame(frame), { binary: true });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (packet.completed || packet.error) {
|
|
69
|
+
this.#pendingRequests.delete(packet.request_id);
|
|
70
|
+
}
|
|
62
71
|
return;
|
|
63
72
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
if (!isServerConnection)
|
|
74
|
+
return;
|
|
75
|
+
if (packet.kind === 'request') {
|
|
76
|
+
const targetNodeId = packet.destination_node_id ?? this.#pickServiceNode(packet.service);
|
|
77
|
+
if (!targetNodeId) {
|
|
78
|
+
this.#sendOfflineError(socket, packet.request_id, packet.service);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const target = this.#nodes.get(targetNodeId);
|
|
82
|
+
if (target?.readyState === WebSocket.OPEN) {
|
|
83
|
+
this.#pendingRequests.set(packet.request_id, target);
|
|
84
|
+
target.send(encodeRelayFrame(frame), { binary: true });
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (packet.kind === 'cancel') {
|
|
89
|
+
const providerSocket = this.#pendingRequests.get(packet.request_id);
|
|
90
|
+
if (!providerSocket)
|
|
91
|
+
return;
|
|
92
|
+
this.#pendingRequests.delete(packet.request_id);
|
|
93
|
+
if (providerSocket.readyState === WebSocket.OPEN) {
|
|
94
|
+
providerSocket.send(encodeRelayFrame(frame), { binary: true });
|
|
95
|
+
}
|
|
96
|
+
return;
|
|
67
97
|
}
|
|
68
98
|
return;
|
|
69
99
|
}
|
|
70
|
-
const
|
|
100
|
+
const senderId = this.#resolveSenderId(socket);
|
|
101
|
+
if (!senderId)
|
|
102
|
+
return;
|
|
103
|
+
const handler = this[`on_${frame.type}`];
|
|
71
104
|
if (!handler) {
|
|
72
|
-
this.on_broadcast(
|
|
105
|
+
this.on_broadcast(frame, socket);
|
|
73
106
|
return;
|
|
74
107
|
}
|
|
75
|
-
handler.call(this,
|
|
108
|
+
handler.call(this, frame, socket);
|
|
76
109
|
}
|
|
77
110
|
on_close(socket) {
|
|
78
111
|
const nodeId = this.#resolveSenderId(socket);
|
|
@@ -80,27 +113,76 @@ export class WebsocketRelayServer {
|
|
|
80
113
|
return;
|
|
81
114
|
this.#nodes.delete(nodeId);
|
|
82
115
|
this.#removeTopicListeners(nodeId);
|
|
116
|
+
this.#removeFromServiceIndex(nodeId);
|
|
117
|
+
for (const [requestId, providerSocket] of this.#pendingRequests) {
|
|
118
|
+
if (providerSocket === socket) {
|
|
119
|
+
this.#pendingRequests.delete(requestId);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
83
122
|
this.on_broadcast({
|
|
84
123
|
type: 'offline',
|
|
85
|
-
sender_id: nodeId,
|
|
86
124
|
node_id: nodeId,
|
|
87
125
|
}, socket);
|
|
88
126
|
this.#syncServerConnections();
|
|
89
127
|
}
|
|
90
|
-
#registerNode(socket,
|
|
91
|
-
const nodeId = discovery.sender_id;
|
|
128
|
+
#registerNode(socket, frame, nodeId) {
|
|
92
129
|
const previousNodeId = this.#resolveSenderId(socket);
|
|
93
130
|
if (previousNodeId && previousNodeId !== nodeId) {
|
|
94
131
|
this.#nodes.delete(previousNodeId);
|
|
95
132
|
this.#removeTopicListeners(previousNodeId);
|
|
133
|
+
this.#removeFromServiceIndex(previousNodeId);
|
|
96
134
|
this.on_broadcast({
|
|
97
135
|
type: 'offline',
|
|
98
|
-
sender_id: previousNodeId,
|
|
99
136
|
node_id: previousNodeId,
|
|
100
137
|
}, socket);
|
|
101
138
|
}
|
|
102
139
|
this.#nodes.set(nodeId, socket);
|
|
103
|
-
this.#setSocketMetadata(socket,
|
|
140
|
+
this.#setSocketMetadata(socket, frame.me);
|
|
141
|
+
this.#updateServiceIndex(nodeId, frame.me);
|
|
142
|
+
}
|
|
143
|
+
#updateServiceIndex(nodeId, metadata) {
|
|
144
|
+
for (const nodes of this.#services.values()) {
|
|
145
|
+
nodes.delete(nodeId);
|
|
146
|
+
}
|
|
147
|
+
for (const service of Object.keys(metadata.services || {})) {
|
|
148
|
+
const nodes = this.#services.get(service) ?? new Set();
|
|
149
|
+
nodes.add(nodeId);
|
|
150
|
+
this.#services.set(service, nodes);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
#removeFromServiceIndex(nodeId) {
|
|
154
|
+
for (const [service, nodes] of this.#services) {
|
|
155
|
+
nodes.delete(nodeId);
|
|
156
|
+
if (nodes.size === 0) {
|
|
157
|
+
this.#services.delete(service);
|
|
158
|
+
this.#serviceRrIndex.delete(service);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
#pickServiceNode(service) {
|
|
163
|
+
const nodeIds = this.#services.get(service);
|
|
164
|
+
if (!nodeIds || nodeIds.size === 0)
|
|
165
|
+
return null;
|
|
166
|
+
const candidates = [...nodeIds].filter(id => this.#nodes.get(id)?.readyState === WebSocket.OPEN);
|
|
167
|
+
if (candidates.length === 0)
|
|
168
|
+
return null;
|
|
169
|
+
const current = this.#serviceRrIndex.get(service) ?? -1;
|
|
170
|
+
const next = (current + 1) % candidates.length;
|
|
171
|
+
this.#serviceRrIndex.set(service, next);
|
|
172
|
+
return candidates[next];
|
|
173
|
+
}
|
|
174
|
+
#sendOfflineError(socket, requestId, service) {
|
|
175
|
+
if (socket.readyState !== WebSocket.OPEN)
|
|
176
|
+
return;
|
|
177
|
+
socket.send(encodeRelayFrame({
|
|
178
|
+
type: 'rpc',
|
|
179
|
+
data: {
|
|
180
|
+
kind: 'response',
|
|
181
|
+
request_id: requestId,
|
|
182
|
+
error: { code: 'MICROSERVICE_OFFLINE', message: `No available node for service ${service}` },
|
|
183
|
+
completed: true,
|
|
184
|
+
},
|
|
185
|
+
}), { binary: true });
|
|
104
186
|
}
|
|
105
187
|
#isServerConnection(socket) {
|
|
106
188
|
return socket[relaySocketState]?.isServerConnection === true;
|
|
@@ -118,24 +200,6 @@ export class WebsocketRelayServer {
|
|
|
118
200
|
#getSocketMetadata(socket) {
|
|
119
201
|
return socket ? socket[relaySocketState]?.metadata : undefined;
|
|
120
202
|
}
|
|
121
|
-
#requiresServerRole(frame) {
|
|
122
|
-
return frame.type === 'request' || frame.type === 'cancel';
|
|
123
|
-
}
|
|
124
|
-
#hasTargetId(frame) {
|
|
125
|
-
return 'target_id' in frame;
|
|
126
|
-
}
|
|
127
|
-
#normalizeHelloFrame(socket, frame) {
|
|
128
|
-
const senderId = frame.me?.node_id;
|
|
129
|
-
if (!senderId)
|
|
130
|
-
return null;
|
|
131
|
-
return {
|
|
132
|
-
...frame,
|
|
133
|
-
sender_id: senderId,
|
|
134
|
-
me: {
|
|
135
|
-
...frame.me,
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
203
|
#shouldSyncDiscovery(previous, next) {
|
|
140
204
|
if (!previous)
|
|
141
205
|
return true;
|
|
@@ -167,15 +231,16 @@ export class WebsocketRelayServer {
|
|
|
167
231
|
#syncClientState(socket) {
|
|
168
232
|
if (!this.#isServerConnection(socket))
|
|
169
233
|
return;
|
|
170
|
-
for (const [
|
|
234
|
+
for (const [, client] of this.#nodes) {
|
|
171
235
|
if (socket.readyState !== WebSocket.OPEN)
|
|
172
236
|
return;
|
|
237
|
+
if (client === socket)
|
|
238
|
+
continue;
|
|
173
239
|
const metadata = this.#getSocketMetadata(client);
|
|
174
240
|
if (!metadata)
|
|
175
241
|
continue;
|
|
176
242
|
socket.send(encodeRelayFrame({
|
|
177
243
|
type: 'hello',
|
|
178
|
-
sender_id: node_id,
|
|
179
244
|
me: metadata,
|
|
180
245
|
}), { binary: true });
|
|
181
246
|
}
|
|
@@ -189,20 +254,26 @@ export class WebsocketRelayServer {
|
|
|
189
254
|
this.#syncClientState(client);
|
|
190
255
|
}
|
|
191
256
|
}
|
|
192
|
-
on_subscribe(frame) {
|
|
193
|
-
this.#
|
|
257
|
+
on_subscribe(frame, sender) {
|
|
258
|
+
const senderId = this.#resolveSenderId(sender);
|
|
259
|
+
if (!senderId)
|
|
260
|
+
return;
|
|
261
|
+
this.#removeTopicListeners(senderId);
|
|
194
262
|
for (const topic of new Set(frame.topics.filter(Boolean))) {
|
|
195
263
|
const listeners = this.#listeners.get(topic) || new Set();
|
|
196
|
-
listeners.add(
|
|
264
|
+
listeners.add(senderId);
|
|
197
265
|
this.#listeners.set(topic, listeners);
|
|
198
266
|
}
|
|
199
267
|
}
|
|
200
|
-
on_unsubscribe(frame) {
|
|
268
|
+
on_unsubscribe(frame, sender) {
|
|
269
|
+
const senderId = this.#resolveSenderId(sender);
|
|
270
|
+
if (!senderId)
|
|
271
|
+
return;
|
|
201
272
|
for (const topic of new Set(frame.topics.filter(Boolean))) {
|
|
202
273
|
const listeners = this.#listeners.get(topic);
|
|
203
274
|
if (!listeners)
|
|
204
275
|
continue;
|
|
205
|
-
listeners.delete(
|
|
276
|
+
listeners.delete(senderId);
|
|
206
277
|
if (listeners.size === 0) {
|
|
207
278
|
this.#listeners.delete(topic);
|
|
208
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketRelayServer.js","sourceRoot":"","sources":["../../src/WebsocketRelayServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebsocketRelayServer.js","sourceRoot":"","sources":["../../src/WebsocketRelayServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { SpiderMeshNode } from '@spider-mesh/core';
|
|
1
|
+
import type { RpcCancelPacket, RpcRequestPacket, RpcResponsePacket, SpiderMeshNode } from '@spider-mesh/core';
|
|
2
2
|
export type RelayRawData = Uint8Array | ArrayBuffer | ArrayBufferView | string | RelayRawData[];
|
|
3
3
|
export type RelayRpcFrame = {
|
|
4
|
-
type: '
|
|
5
|
-
|
|
6
|
-
target_id?: string;
|
|
4
|
+
type: 'rpc';
|
|
5
|
+
data: RpcRequestPacket | RpcResponsePacket | RpcCancelPacket;
|
|
7
6
|
};
|
|
8
7
|
export type RelayPublishFrame = {
|
|
9
8
|
type: 'publish';
|
|
@@ -28,25 +27,6 @@ export type RelayOfflineFrame = {
|
|
|
28
27
|
node_id: string;
|
|
29
28
|
};
|
|
30
29
|
export type RelayFrame = RelayRpcFrame | RelayPublishFrame | RelaySubscribeFrame | RelayUnsubscribeFrame | RelayHelloFrame | RelayOfflineFrame;
|
|
31
|
-
export
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
export type ReceivedRelayPublishFrame = RelayPublishFrame & {
|
|
35
|
-
sender_id: string;
|
|
36
|
-
};
|
|
37
|
-
export type ReceivedRelaySubscribeFrame = RelaySubscribeFrame & {
|
|
38
|
-
sender_id: string;
|
|
39
|
-
};
|
|
40
|
-
export type ReceivedRelayUnsubscribeFrame = RelayUnsubscribeFrame & {
|
|
41
|
-
sender_id: string;
|
|
42
|
-
};
|
|
43
|
-
export type ReceivedRelayHelloFrame = RelayHelloFrame & {
|
|
44
|
-
sender_id: string;
|
|
45
|
-
};
|
|
46
|
-
export type ReceivedRelayOfflineFrame = RelayOfflineFrame & {
|
|
47
|
-
sender_id: string;
|
|
48
|
-
};
|
|
49
|
-
export type ReceivedRelayFrame = ReceivedRelayRpcFrame | ReceivedRelayPublishFrame | ReceivedRelaySubscribeFrame | ReceivedRelayUnsubscribeFrame | ReceivedRelayHelloFrame | ReceivedRelayOfflineFrame;
|
|
50
|
-
export declare function encodeRelayFrame(frame: RelayFrame | ReceivedRelayFrame): Uint8Array<ArrayBuffer>;
|
|
51
|
-
export declare function decodeRelayFrame(raw: Uint8Array): RelayRpcFrame | RelayPublishFrame | RelaySubscribeFrame | RelayUnsubscribeFrame | RelayHelloFrame | RelayOfflineFrame | null;
|
|
30
|
+
export declare function encodeRelayFrame(frame: RelayFrame): Uint8Array<ArrayBuffer>;
|
|
31
|
+
export declare function decodeRelayFrame(raw: Uint8Array): RelayFrame | null;
|
|
52
32
|
export declare function normalizeRelayRawData(raw: RelayRawData): Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocketProtocol.js","sourceRoot":"","sources":["../../src/websocketProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"websocketProtocol.js","sourceRoot":"","sources":["../../src/websocketProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAwCjD,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC5C,IAAI,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAe,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAiB;IACnD,IAAI,GAAG,YAAY,UAAU;QAAE,OAAO,GAAG,CAAA;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChG,IAAI,GAAG,YAAY,WAAW;QAAE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACjE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAoB;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,GAAsC;IACxD,IAAI,GAAG,YAAY,UAAU;QAAE,OAAO,GAAG,CAAA;IACzC,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9F,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spider-mesh/ws",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.145",
|
|
5
5
|
"description": "Built-in WebSocket transporter and relay server for Spider Mesh",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/spider-mesh/ws"
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"yarn.lock"
|
|
13
13
|
],
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@spider-mesh/core": "^2.0.
|
|
15
|
+
"@spider-mesh/core": "^2.0.145"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@spider-mesh/core": "^2.0.
|
|
18
|
+
"@spider-mesh/core": "^2.0.145",
|
|
19
19
|
"@types/bun": "^1.3.13",
|
|
20
20
|
"@types/node": "^25.6.0",
|
|
21
21
|
"@types/ws": "^8.18.1",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"test:websocket:e2e": "bun run examples/websocket-e2e-test.ts",
|
|
57
57
|
"test:websocket:e2e:matrix": "bun run examples/websocket-e2e-matrix-test.ts",
|
|
58
58
|
"test:websocket:e2e:reverse": "bun run examples/websocket-e2e-reverse-test.ts",
|
|
59
|
-
"test:e2e": "bun test tests/websocket-transporter.e2e.test.ts && bun test tests/websocket-spidermesh.e2e.test.ts && bun test tests/websocket-spidermesh-reverse.e2e.test.ts && bun test tests/websocket-spidermesh-matrix.e2e.test.ts && bun test tests/websocket-spidermesh-round-robin.e2e.test.ts"
|
|
59
|
+
"test:e2e": "bun test tests/websocket-transporter.e2e.test.ts && bun test tests/websocket-spidermesh.e2e.test.ts && bun test tests/websocket-spidermesh-reverse.e2e.test.ts && bun test tests/websocket-spidermesh-matrix.e2e.test.ts && bun test tests/websocket-spidermesh-round-robin.e2e.test.ts && bun test tests/websocket-getting-started.e2e.test.ts && bun test tests/websocket-registry-free-wait.e2e.test.ts && bun test tests/websocket-missing.e2e.test.ts && bun test tests/node-online-spam.e2e.test.ts && bun test tests/websocket-registry-free-watch.e2e.test.ts"
|
|
60
60
|
},
|
|
61
61
|
"author": "Duong Van Ba",
|
|
62
62
|
"license": "ISC",
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
"browser": {
|
|
69
69
|
"crypto": false
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|