@spider-mesh/ws 2.0.42 → 2.0.45
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 +23 -7
- package/build/src/BaseWebsocketTransporter.d.ts +5 -6
- package/build/src/BaseWebsocketTransporter.js +33 -42
- 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/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/tsconfig.json +1 -0
- package/build/examples/helpers/createMesh.d.ts +0 -13
- package/build/examples/helpers/createMesh.js +0 -19
- package/build/examples/helpers/createMesh.js.map +0 -1
- package/build/examples/websocket-client.d.ts +0 -1
- package/build/examples/websocket-client.js +0 -17
- package/build/examples/websocket-client.js.map +0 -1
- package/build/examples/websocket-e2e-client.d.ts +0 -1
- package/build/examples/websocket-e2e-client.js +0 -36
- package/build/examples/websocket-e2e-client.js.map +0 -1
- package/build/examples/websocket-e2e-matrix-client.d.ts +0 -1
- package/build/examples/websocket-e2e-matrix-client.js +0 -66
- package/build/examples/websocket-e2e-matrix-client.js.map +0 -1
- package/build/examples/websocket-e2e-matrix-provider.d.ts +0 -1
- package/build/examples/websocket-e2e-matrix-provider.js +0 -41
- package/build/examples/websocket-e2e-matrix-provider.js.map +0 -1
- package/build/examples/websocket-e2e-matrix-test.d.ts +0 -1
- package/build/examples/websocket-e2e-matrix-test.js +0 -85
- package/build/examples/websocket-e2e-matrix-test.js.map +0 -1
- package/build/examples/websocket-e2e-provider.d.ts +0 -1
- package/build/examples/websocket-e2e-provider.js +0 -22
- package/build/examples/websocket-e2e-provider.js.map +0 -1
- package/build/examples/websocket-e2e-reverse-client.d.ts +0 -1
- package/build/examples/websocket-e2e-reverse-client.js +0 -21
- package/build/examples/websocket-e2e-reverse-client.js.map +0 -1
- package/build/examples/websocket-e2e-reverse-server.d.ts +0 -1
- package/build/examples/websocket-e2e-reverse-server.js +0 -36
- package/build/examples/websocket-e2e-reverse-server.js.map +0 -1
- package/build/examples/websocket-e2e-reverse-test.d.ts +0 -1
- package/build/examples/websocket-e2e-reverse-test.js +0 -85
- package/build/examples/websocket-e2e-reverse-test.js.map +0 -1
- package/build/examples/websocket-e2e-round-robin-client.d.ts +0 -1
- package/build/examples/websocket-e2e-round-robin-client.js +0 -41
- package/build/examples/websocket-e2e-round-robin-client.js.map +0 -1
- package/build/examples/websocket-e2e-round-robin-test.d.ts +0 -1
- package/build/examples/websocket-e2e-round-robin-test.js +0 -93
- package/build/examples/websocket-e2e-round-robin-test.js.map +0 -1
- package/build/examples/websocket-e2e-test.d.ts +0 -1
- package/build/examples/websocket-e2e-test.js +0 -85
- package/build/examples/websocket-e2e-test.js.map +0 -1
- package/build/examples/websocket-provider.d.ts +0 -1
- package/build/examples/websocket-provider.js +0 -20
- package/build/examples/websocket-provider.js.map +0 -1
- package/build/examples/websocket-server.d.ts +0 -1
- package/build/examples/websocket-server.js +0 -6
- package/build/examples/websocket-server.js.map +0 -1
- package/build/examples/websocket-smoke-test.d.ts +0 -1
- package/build/examples/websocket-smoke-test.js +0 -169
- package/build/examples/websocket-smoke-test.js.map +0 -1
- package/build/tests/helpers/runBunScript.d.ts +0 -6
- package/build/tests/helpers/runBunScript.js +0 -46
- package/build/tests/helpers/runBunScript.js.map +0 -1
- package/build/tests/websocket-spidermesh-matrix.e2e.test.d.ts +0 -1
- package/build/tests/websocket-spidermesh-matrix.e2e.test.js +0 -13
- package/build/tests/websocket-spidermesh-matrix.e2e.test.js.map +0 -1
- package/build/tests/websocket-spidermesh-reverse.e2e.test.d.ts +0 -1
- package/build/tests/websocket-spidermesh-reverse.e2e.test.js +0 -9
- package/build/tests/websocket-spidermesh-reverse.e2e.test.js.map +0 -1
- package/build/tests/websocket-spidermesh-round-robin.e2e.test.d.ts +0 -1
- package/build/tests/websocket-spidermesh-round-robin.e2e.test.js +0 -20
- package/build/tests/websocket-spidermesh-round-robin.e2e.test.js.map +0 -1
- package/build/tests/websocket-spidermesh.e2e.test.d.ts +0 -1
- package/build/tests/websocket-spidermesh.e2e.test.js +0 -9
- package/build/tests/websocket-spidermesh.e2e.test.js.map +0 -1
- package/build/tests/websocket-transporter.e2e.test.d.ts +0 -1
- package/build/tests/websocket-transporter.e2e.test.js +0 -9
- package/build/tests/websocket-transporter.e2e.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -120,13 +120,23 @@ console.log(await greeter.hello('world'))
|
|
|
120
120
|
|
|
121
121
|
Current responsibilities:
|
|
122
122
|
|
|
123
|
-
- maintain relay connections
|
|
123
|
+
- maintain relay connections with automatic reconnect
|
|
124
124
|
- expose `status$` for per-URL connection status
|
|
125
|
-
- send and receive RPC frames
|
|
126
|
-
- propagate discovery `hello` and `offline` frames
|
|
125
|
+
- send and receive RPC frames; the relay routes by `destination_node_id` when present, otherwise selects a provider by service name with round-robin
|
|
126
|
+
- propagate discovery `hello` and `offline` frames; suppresses duplicate `discovered` events for already-known nodes
|
|
127
127
|
- forward pubsub messages and subscription changes
|
|
128
128
|
- integrate directly with `mesh.registerTransporter(transporter)`
|
|
129
129
|
|
|
130
|
+
Current send contract:
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
send(packet: RpcRequestPacket | RpcResponsePacket): Promise<{ cancel: () => void }>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
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.
|
|
137
|
+
|
|
138
|
+
Throws `MICROSERVICE_OFFLINE` immediately when a registry is linked but no node is available for the requested service.
|
|
139
|
+
|
|
130
140
|
Supported options:
|
|
131
141
|
|
|
132
142
|
- `heartbeatIntervalMs`
|
|
@@ -149,16 +159,22 @@ Supported options:
|
|
|
149
159
|
The package includes:
|
|
150
160
|
|
|
151
161
|
- binary transporter smoke coverage
|
|
152
|
-
- connection status coverage
|
|
162
|
+
- WebSocket connection status coverage
|
|
153
163
|
- SpiderMesh RPC e2e coverage
|
|
154
164
|
- reverse RPC coverage
|
|
155
|
-
- matrix coverage for sync/async/
|
|
156
|
-
- multi-provider routing coverage
|
|
165
|
+
- matrix coverage for sync / async / Observable / error return paths
|
|
166
|
+
- multi-provider round-robin routing coverage
|
|
167
|
+
- RPC timeout coverage
|
|
168
|
+
- fallback value coverage
|
|
169
|
+
- provider disconnect / offline detection coverage
|
|
170
|
+
- concurrent RPC coverage
|
|
171
|
+
- provider reconnect coverage
|
|
172
|
+
- failover coverage (3 nodes → kill 1 → 2 nodes continue serving)
|
|
157
173
|
|
|
158
174
|
Run the full suite with:
|
|
159
175
|
|
|
160
176
|
```bash
|
|
161
|
-
bun
|
|
177
|
+
bun test
|
|
162
178
|
```
|
|
163
179
|
|
|
164
180
|
Build with:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
2
|
-
import type { DiscoveryTransporter, MdnsMessage,
|
|
2
|
+
import type { DiscoveryTransporter, MdnsMessage, PubsubTransporter, RpcRequestPacket, RpcResponsePacket, RpcTransporter, SpiderMeshNode } from '@spider-mesh/core';
|
|
3
3
|
export type WebsocketTransporterOptions = {
|
|
4
4
|
heartbeatIntervalMs?: number;
|
|
5
5
|
reconnectIntervalMs?: number;
|
|
@@ -23,14 +23,13 @@ export declare abstract class BaseWebsocketTransporter extends Subject<any> impl
|
|
|
23
23
|
constructor(options?: WebsocketTransporterOptions);
|
|
24
24
|
connect(url: string): void;
|
|
25
25
|
close(url: string): void;
|
|
26
|
-
send(packet:
|
|
27
|
-
|
|
26
|
+
send(packet: RpcRequestPacket | RpcResponsePacket): Promise<{
|
|
27
|
+
cancel: () => void;
|
|
28
|
+
}>;
|
|
29
|
+
broadcast(data: MdnsMessage<SpiderMeshNode>): Promise<void>;
|
|
28
30
|
publish<T>(topic: string, data: T): Promise<void>;
|
|
29
31
|
listen<T>(topic: string): Observable<T>;
|
|
30
32
|
protected abstract createSocket(url: string): Promise<WebSocketLike> | WebSocketLike;
|
|
31
|
-
private on_request;
|
|
32
|
-
private on_response;
|
|
33
|
-
private on_cancel;
|
|
34
33
|
private on_rpc;
|
|
35
34
|
private on_hello;
|
|
36
35
|
private on_offline;
|
|
@@ -9,6 +9,7 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
9
9
|
#topics = new Map();
|
|
10
10
|
#nodes = new Map();
|
|
11
11
|
#me$ = new ReplaySubject(1);
|
|
12
|
+
#localNodeId;
|
|
12
13
|
status$ = new BehaviorSubject(new Map());
|
|
13
14
|
constructor(options = {}) {
|
|
14
15
|
super();
|
|
@@ -32,19 +33,30 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
32
33
|
this.#disconnectSocket(socket);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
async send(packet
|
|
36
|
-
const socket = this.#selectRpcSocket(
|
|
36
|
+
async send(packet) {
|
|
37
|
+
const socket = this.#selectRpcSocket(packet.destination_node_id);
|
|
37
38
|
await this.#sendFrame(socket, {
|
|
38
|
-
type:
|
|
39
|
-
|
|
40
|
-
payload: this.#encodeRpcPacket(packet),
|
|
39
|
+
type: 'rpc',
|
|
40
|
+
data: packet,
|
|
41
41
|
});
|
|
42
|
+
if (packet.kind === 'request') {
|
|
43
|
+
return {
|
|
44
|
+
cancel: () => {
|
|
45
|
+
void this.#sendFrame(socket, {
|
|
46
|
+
type: 'rpc',
|
|
47
|
+
data: { kind: 'cancel', request_id: packet.request_id },
|
|
48
|
+
}).catch(() => undefined);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return { cancel: () => { } };
|
|
42
53
|
}
|
|
43
54
|
async broadcast(data) {
|
|
44
55
|
const localNode = {
|
|
45
56
|
...data.node,
|
|
46
57
|
node_id: data.sender_id,
|
|
47
58
|
};
|
|
59
|
+
this.#localNodeId = localNode.node_id;
|
|
48
60
|
this.#me$.next(localNode);
|
|
49
61
|
}
|
|
50
62
|
async publish(topic, data) {
|
|
@@ -122,34 +134,28 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
122
134
|
delay: () => timer(this.options.reconnectIntervalMs || 1000),
|
|
123
135
|
}));
|
|
124
136
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
on_response(_url, frame) {
|
|
129
|
-
this.on_rpc(frame);
|
|
130
|
-
}
|
|
131
|
-
on_cancel(_url, frame) {
|
|
132
|
-
this.on_rpc(frame);
|
|
133
|
-
}
|
|
134
|
-
on_rpc(frame) {
|
|
135
|
-
const packet = this.#decodeRpcPacket(frame);
|
|
136
|
-
if (!packet)
|
|
137
|
+
on_rpc(_url, frame) {
|
|
138
|
+
if (frame.type !== 'rpc')
|
|
137
139
|
return;
|
|
138
|
-
this.next({
|
|
139
|
-
rpc: {
|
|
140
|
-
node_id: frame.sender_id,
|
|
141
|
-
packet
|
|
142
|
-
}
|
|
143
|
-
});
|
|
140
|
+
this.next({ rpc: frame.data });
|
|
144
141
|
}
|
|
145
142
|
on_hello(url, frame) {
|
|
146
143
|
const node = frame.me;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
});
|
|
144
|
+
if (node.node_id === this.#localNodeId)
|
|
145
|
+
return;
|
|
146
|
+
const existing = this.#nodes.get(node.node_id);
|
|
147
|
+
this.#nodes.set(node.node_id, { node, relayUrl: url });
|
|
148
|
+
if (existing && this.#hasSameServices(existing.node, node))
|
|
149
|
+
return;
|
|
151
150
|
this.next({ discovered: node });
|
|
152
151
|
}
|
|
152
|
+
#hasSameServices(a, b) {
|
|
153
|
+
const aKeys = Object.keys(a.services || {}).sort();
|
|
154
|
+
const bKeys = Object.keys(b.services || {}).sort();
|
|
155
|
+
if (aKeys.length !== bKeys.length)
|
|
156
|
+
return false;
|
|
157
|
+
return aKeys.every((k, i) => k === bKeys[i]);
|
|
158
|
+
}
|
|
153
159
|
on_offline(url, frame) {
|
|
154
160
|
const current = this.#nodes.get(frame.node_id);
|
|
155
161
|
if (current?.relayUrl === url) {
|
|
@@ -201,21 +207,6 @@ export class BaseWebsocketTransporter extends Subject {
|
|
|
201
207
|
topics,
|
|
202
208
|
});
|
|
203
209
|
}
|
|
204
|
-
#encodeRpcPacket(packet) {
|
|
205
|
-
const { kind: _, ...payload } = packet;
|
|
206
|
-
return encode(payload);
|
|
207
|
-
}
|
|
208
|
-
#decodeRpcPacket(frame) {
|
|
209
|
-
try {
|
|
210
|
-
return {
|
|
211
|
-
kind: frame.type,
|
|
212
|
-
...decode(frame.payload),
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
return null;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
210
|
async #sendFrame(socket, frame) {
|
|
220
211
|
if (!socket || socket.readyState !== WEBSOCKET_OPEN) {
|
|
221
212
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAsM,MAAM,wBAAwB,CAAA;AAMtS,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAgBnD,MAAM,OAAO,oBAAoB;IAC7B,OAAO,CAAU;IACjB,aAAa,GAAG,YAAY,CAAC,KAAK,CAAA;IAClC,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;IACrC,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE3C,YAAY,UAAuC,EAAE;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,QAAQ,CAAC;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC7B,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,GAAG,SAAS,CAA4C,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CACtG,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAChF,CAAC,SAAS,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,IAAI;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QACtC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACvE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAEO,aAAa,CAAC,MAAiB,EAAE,OAAqC,EAAE,OAAoC;QAChH,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACzG;QAAC,MAAsB,CAAC,gBAAgB,CAAC,GAAG;YACzC,kBAAkB;SACrB,CAAA;QAED,IAAI,kBAAkB,EAAE,CAAC;YACrB,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,OAAO,KAAK,CACR,SAAS,CAAiF,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAC7G,GAAG,CAAC,KAAK,CAAC,EAAE;YACR,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAElF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAA;QACpD,CAAC,CAAC,EACF,cAAc,EAAE,CACnB,EACD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAC3B,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAChC,cAAc,EAAE,CACnB,CACJ,CAAA;IACL,CAAC;IAEO,UAAU,CAAC,MAAiB,EAAE,GAAsB,EAAE,kBAA2B;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC3D,IAAI,CAAC,UAAU;gBAAE,OAAM;YAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/E,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAEtC,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,sBAAsB,EAAE,CAAA;YACjC,CAAC;YACD,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAwB,CAAA;QAE1E,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9D,OAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YACpD,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/D,CAAC;YACD,OAAM;QACV,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,EAAgC,CAAyE,CAAA;QACnJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACrC,OAAM;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IAEO,QAAQ,CAAC,MAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,YAAY,CAAC;YACd,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM;SAClB,EAAE,MAAM,CAAC,CAAA;QACV,IAAI,CAAC,sBAAsB,EAAE,CAAA;IACjC,CAAC;IAED,aAAa,CAAC,MAAiB,EAAE,SAAkC;QAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAA;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAClC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAA;YAC1C,IAAI,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,cAAc;aAC1B,EAAE,MAAM,CAAC,CAAA;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,mBAAmB,CAAC,MAAiB;QACjC,OAAQ,MAAsB,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACjF,CAAC;IAED,kBAAkB,CAAC,MAAiB,EAAE,QAAuC;QACzE,MAAM,WAAW,GAAG,MAAqB,CAAA;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,WAAW,CAAC,gBAAgB,CAAC,GAAG;YAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,QAAQ;SACX,CAAA;IACL,CAAC;IAED,kBAAkB,CAAC,MAAkB;QACjC,OAAO,MAAM,CAAC,CAAC,CAAE,MAAsB,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACnF,CAAC;IAED,mBAAmB,CAAC,KAAsC;QACtD,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;IAC9D,CAAC;IAED,YAAY,CAAC,KAAsC;QAC/C,OAAO,WAAW,IAAI,KAAK,CAAA;IAC/B,CAAC;IAED,oBAAoB,CAAC,MAAiB,EAAE,KAAsB;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAA;QAClC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAE1B,OAAO;YACH,GAAG,KAAK;YACR,SAAS,EAAE,QAAQ;YACnB,EAAE,EAAE;gBACA,GAAG,KAAK,CAAC,EAAE;aACd;SAC8B,CAAA;IACvC,CAAC;IAED,oBAAoB,CAAC,QAAmD,EAAE,IAAmC;QACzG,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,mBAAmB,CAAC,IAA6B,EAAE,KAA8B;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,qBAAqB,CAAC,MAAc;QAChC,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/C,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxB,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,MAAiB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAA;IACpC,CAAC;IAED,gBAAgB,CAAC,MAAiB;QAC9B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAAE,OAAM;QAE7C,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,OAAM;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAChD,IAAI,CAAC,QAAQ;gBAAE,SAAQ;YACvB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACzB,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,OAAO;gBAClB,EAAE,EAAE,QAAQ;aACf,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACzB,CAAC;IACL,CAAC;IAED,sBAAsB;QAClB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,SAAQ;YAClD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAAE,SAAQ;YAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,KAAkC;QACnD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAE3C,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;YACjE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACzC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,KAAoC;QACvD,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC5C,IAAI,CAAC,SAAS;gBAAE,SAAQ;YAExB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACjC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,KAAgC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAM;QAE9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAa,CAAA;QAEtC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACtF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YACtC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,KAAyB,EAAE,MAAiB;QAC7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,SAAQ;YACvE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAAE,SAAQ;YAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,CAAC;IACL,CAAC;IAED,WAAW,CAAC,GAAsB;QAC9B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"WebsocketRelayServer.js","sourceRoot":"","sources":["../../src/WebsocketRelayServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type {
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../
|
|
1
|
+
{"root":["../src/basewebsockettransporter.ts","../src/globalwebsockettransporter.ts","../src/websocketrelayserver.ts","../src/websockettransporter.ts","../src/browser.ts","../src/node.ts","../src/react-native.ts","../src/relay-server.ts","../src/websocketprotocol.ts"],"version":"6.0.3"}
|
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.45",
|
|
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.45"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@spider-mesh/core": "^2.0.
|
|
18
|
+
"@spider-mesh/core": "^2.0.45",
|
|
19
19
|
"@types/bun": "^1.3.13",
|
|
20
20
|
"@types/node": "^25.6.0",
|
|
21
21
|
"@types/ws": "^8.18.1",
|