@spider-mesh/ws 2.0.41 → 2.0.44

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 (71) hide show
  1. package/README.md +96 -169
  2. package/build/src/BaseWebsocketTransporter.d.ts +5 -3
  3. package/build/src/BaseWebsocketTransporter.js +26 -13
  4. package/build/src/BaseWebsocketTransporter.js.map +1 -1
  5. package/build/src/websocketProtocol.d.ts +2 -2
  6. package/build/tsconfig.tsbuildinfo +1 -1
  7. package/package.json +3 -3
  8. package/tsconfig.json +1 -0
  9. package/build/examples/websocket-client.d.ts +0 -1
  10. package/build/examples/websocket-client.js +0 -18
  11. package/build/examples/websocket-client.js.map +0 -1
  12. package/build/examples/websocket-e2e-client.d.ts +0 -1
  13. package/build/examples/websocket-e2e-client.js +0 -38
  14. package/build/examples/websocket-e2e-client.js.map +0 -1
  15. package/build/examples/websocket-e2e-matrix-client.d.ts +0 -1
  16. package/build/examples/websocket-e2e-matrix-client.js +0 -68
  17. package/build/examples/websocket-e2e-matrix-client.js.map +0 -1
  18. package/build/examples/websocket-e2e-matrix-provider.d.ts +0 -1
  19. package/build/examples/websocket-e2e-matrix-provider.js +0 -42
  20. package/build/examples/websocket-e2e-matrix-provider.js.map +0 -1
  21. package/build/examples/websocket-e2e-matrix-test.d.ts +0 -1
  22. package/build/examples/websocket-e2e-matrix-test.js +0 -85
  23. package/build/examples/websocket-e2e-matrix-test.js.map +0 -1
  24. package/build/examples/websocket-e2e-provider.d.ts +0 -1
  25. package/build/examples/websocket-e2e-provider.js +0 -23
  26. package/build/examples/websocket-e2e-provider.js.map +0 -1
  27. package/build/examples/websocket-e2e-reverse-client.d.ts +0 -1
  28. package/build/examples/websocket-e2e-reverse-client.js +0 -23
  29. package/build/examples/websocket-e2e-reverse-client.js.map +0 -1
  30. package/build/examples/websocket-e2e-reverse-server.d.ts +0 -1
  31. package/build/examples/websocket-e2e-reverse-server.js +0 -38
  32. package/build/examples/websocket-e2e-reverse-server.js.map +0 -1
  33. package/build/examples/websocket-e2e-reverse-test.d.ts +0 -1
  34. package/build/examples/websocket-e2e-reverse-test.js +0 -85
  35. package/build/examples/websocket-e2e-reverse-test.js.map +0 -1
  36. package/build/examples/websocket-e2e-round-robin-client.d.ts +0 -1
  37. package/build/examples/websocket-e2e-round-robin-client.js +0 -42
  38. package/build/examples/websocket-e2e-round-robin-client.js.map +0 -1
  39. package/build/examples/websocket-e2e-round-robin-test.d.ts +0 -1
  40. package/build/examples/websocket-e2e-round-robin-test.js +0 -93
  41. package/build/examples/websocket-e2e-round-robin-test.js.map +0 -1
  42. package/build/examples/websocket-e2e-test.d.ts +0 -1
  43. package/build/examples/websocket-e2e-test.js +0 -85
  44. package/build/examples/websocket-e2e-test.js.map +0 -1
  45. package/build/examples/websocket-provider.d.ts +0 -1
  46. package/build/examples/websocket-provider.js +0 -21
  47. package/build/examples/websocket-provider.js.map +0 -1
  48. package/build/examples/websocket-server.d.ts +0 -1
  49. package/build/examples/websocket-server.js +0 -6
  50. package/build/examples/websocket-server.js.map +0 -1
  51. package/build/examples/websocket-smoke-test.d.ts +0 -1
  52. package/build/examples/websocket-smoke-test.js +0 -166
  53. package/build/examples/websocket-smoke-test.js.map +0 -1
  54. package/build/tests/helpers/runBunScript.d.ts +0 -6
  55. package/build/tests/helpers/runBunScript.js +0 -46
  56. package/build/tests/helpers/runBunScript.js.map +0 -1
  57. package/build/tests/websocket-spidermesh-matrix.e2e.test.d.ts +0 -1
  58. package/build/tests/websocket-spidermesh-matrix.e2e.test.js +0 -13
  59. package/build/tests/websocket-spidermesh-matrix.e2e.test.js.map +0 -1
  60. package/build/tests/websocket-spidermesh-reverse.e2e.test.d.ts +0 -1
  61. package/build/tests/websocket-spidermesh-reverse.e2e.test.js +0 -9
  62. package/build/tests/websocket-spidermesh-reverse.e2e.test.js.map +0 -1
  63. package/build/tests/websocket-spidermesh-round-robin.e2e.test.d.ts +0 -1
  64. package/build/tests/websocket-spidermesh-round-robin.e2e.test.js +0 -20
  65. package/build/tests/websocket-spidermesh-round-robin.e2e.test.js.map +0 -1
  66. package/build/tests/websocket-spidermesh.e2e.test.d.ts +0 -1
  67. package/build/tests/websocket-spidermesh.e2e.test.js +0 -9
  68. package/build/tests/websocket-spidermesh.e2e.test.js.map +0 -1
  69. package/build/tests/websocket-transporter.e2e.test.d.ts +0 -1
  70. package/build/tests/websocket-transporter.e2e.test.js +0 -9
  71. package/build/tests/websocket-transporter.e2e.test.js.map +0 -1
package/README.md CHANGED
@@ -1,42 +1,13 @@
1
1
  # Spider Mesh WS
2
2
 
3
- `@spider-mesh/ws` is the official WebSocket package for Spider Mesh.
3
+ `@spider-mesh/ws` provides the WebSocket transport package for `@spider-mesh/core`.
4
4
 
5
- It contains two pieces:
5
+ It contains:
6
6
 
7
- - `WebsocketTransporter`: the built-in transporter used by application nodes for RPC, discovery, and pubsub.
8
- - `WebsocketRelayServer`: the relay process that forwards WebSocket traffic between nodes.
7
+ - `WebsocketTransporter` for application nodes
8
+ - `WebsocketRelayServer` for the relay process
9
9
 
10
- This package is intentionally separate from `@spider-mesh/core`.
11
-
12
- The core package stays runtime-agnostic, while `@spider-mesh/ws` contains the Node.js/Bun-specific WebSocket implementation based on `ws` and MsgPack.
13
-
14
- ## What This Package Does
15
-
16
- Use `@spider-mesh/ws` when you want the built-in WebSocket transport instead of writing a custom transporter.
17
-
18
- The package provides:
19
-
20
- - binary WebSocket frames encoded with `@msgpack/msgpack`
21
- - RPC request, response, and cancel forwarding
22
- - node discovery propagation through relay hello and offline events
23
- - pubsub publish, subscribe, and unsubscribe forwarding
24
- - reconnect and heartbeat handling in the client transporter
25
- - a dedicated relay server entry at `@spider-mesh/ws/relay-server`
26
-
27
- ## When To Use It
28
-
29
- Use this package when:
30
-
31
- - your runtime is Node.js or Bun
32
- - you want an official ready-to-use Spider Mesh transport
33
- - you want one relay process that many providers and clients can connect to
34
-
35
- Do not use this package as the default import source for runtime-agnostic APIs.
36
-
37
- - Import `SpiderMesh`, `Microservice`, and `RemoteServiceLinker` from `@spider-mesh/core`
38
- - Import `WebsocketTransporter` from `@spider-mesh/ws`
39
- - Import `WebsocketRelayServer` from `@spider-mesh/ws/relay-server`
10
+ The package is ESM-only.
40
11
 
41
12
  ## Install
42
13
 
@@ -44,220 +15,176 @@ Do not use this package as the default import source for runtime-agnostic APIs.
44
15
  bun add @spider-mesh/core @spider-mesh/ws rxjs reflect-metadata
45
16
  ```
46
17
 
47
- Keep `@spider-mesh/ws` and `@spider-mesh/core` on matching published versions so transporter/runtime contracts stay aligned.
48
-
49
- `SpiderMeshNode` metadata consumed by this package no longer includes `ips` or `online`.
50
- Relay hello frames now mirror the core node metadata directly and discovery broadcast uses a single argument:
51
-
52
- ```ts
53
- broadcast(data: MdnsMessage<NodeMetadata>): Promise<void>
54
- ```
55
-
56
- This package is ESM-only.
18
+ Keep `@spider-mesh/ws` and `@spider-mesh/core` on matching versions.
57
19
 
58
20
  ## Export Surface
59
21
 
60
- Transporter entries:
22
+ Node/Bun transporter:
61
23
 
62
24
  ```ts
63
25
  import { WebsocketTransporter } from '@spider-mesh/ws/node'
64
26
  ```
65
27
 
66
- Relay server entry:
28
+ Browser transporter:
67
29
 
68
30
  ```ts
69
- import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
31
+ import { WebsocketTransporter } from '@spider-mesh/ws/browser'
70
32
  ```
71
33
 
72
- Recommended full import shape:
34
+ React Native transporter:
73
35
 
74
36
  ```ts
75
- import { SpiderMesh, Microservice, RemoteServiceLinker } from '@spider-mesh/core'
76
- import { WebsocketTransporter } from '@spider-mesh/ws/node'
77
- import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
37
+ import { WebsocketTransporter } from '@spider-mesh/ws/react-native'
78
38
  ```
79
39
 
80
- ## Runtime Support
81
-
82
- | Runtime | Transporter Entry | Relay Server Entry |
83
- | --- | --- | --- |
84
- | Node.js | `@spider-mesh/ws/node` | `@spider-mesh/ws/relay-server` |
85
- | Bun | `@spider-mesh/ws/node` | `@spider-mesh/ws/relay-server` |
86
- | Browser | Supported via `@spider-mesh/ws/browser` | Not supported |
87
- | React Native | Supported via `@spider-mesh/ws/react-native` | Not supported |
88
-
89
- The package root `@spider-mesh/ws` is not exported. Import a runtime-specific subpath explicitly.
40
+ Relay server:
90
41
 
91
- `@spider-mesh/ws/node` uses the `ws` client implementation for Node.js and Bun.
92
-
93
- `@spider-mesh/ws/browser` and `@spider-mesh/ws/react-native` use the native `globalThis.WebSocket` client API.
42
+ ```ts
43
+ import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
44
+ ```
94
45
 
95
- `@spider-mesh/ws/relay-server` remains Node.js or Bun only.
46
+ ## Runtime Setup
96
47
 
97
- Import the runtime-specific transporter from the matching subpath:
48
+ Create one `WebsocketTransporter`, connect it to the relay, then register that shared transporter directly on `SpiderMesh`.
98
49
 
99
50
  ```ts
51
+ import { Registry, SpiderMesh } from '@spider-mesh/core'
100
52
  import { WebsocketTransporter } from '@spider-mesh/ws/node'
101
- import { WebsocketTransporter as BrowserWebsocketTransporter } from '@spider-mesh/ws/browser'
102
- import { WebsocketTransporter as ReactNativeWebsocketTransporter } from '@spider-mesh/ws/react-native'
103
- ```
104
-
105
- ## Architecture
106
53
 
107
- Typical deployment shape:
54
+ const transporter = new WebsocketTransporter({
55
+ heartbeatIntervalMs: 5000,
56
+ reconnectIntervalMs: 1000,
57
+ })
108
58
 
109
- 1. Start one relay process with `WebsocketRelayServer`.
110
- 2. Start provider nodes with `WebsocketTransporter` and local `@Microservice()` classes.
111
- 3. Start client nodes with `WebsocketTransporter` and `RemoteServiceLinker.link()`.
112
- 4. In clients, wait for discovery before the first RPC call.
59
+ transporter.connect('ws://127.0.0.1:8787')
113
60
 
114
- Conceptually:
61
+ const registry = new Registry()
62
+ const mesh = new SpiderMesh(registry)
115
63
 
116
- - `@spider-mesh/core` owns the runtime and service model
117
- - `@spider-mesh/ws` owns WebSocket transport and relay behavior
118
- - the relay server forwards frames, but does not host application services
64
+ mesh.registerTransporter(transporter)
65
+ ```
119
66
 
120
- ## Quick Start
67
+ `SpiderMesh.registerTransporter()` now links all supported capabilities on the same transporter instance, so one `WebsocketTransporter` can serve RPC, discovery, and pubsub together.
121
68
 
122
- ### 1. Start a relay server
69
+ ## Relay Server
123
70
 
124
71
  ```ts
125
72
  import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
126
73
 
127
74
  const server = new WebsocketRelayServer({
128
- host: '127.0.0.1',
129
- port: 8787,
75
+ host: '127.0.0.1',
76
+ port: 8787,
130
77
  })
131
78
 
132
79
  console.log(`WebSocket relay listening on ws://127.0.0.1:${server.port}`)
133
80
  ```
134
81
 
135
- ### 2. Start a provider
136
-
137
- ```ts
138
- import { Microservice, SpiderMesh } from '@spider-mesh/core'
139
- import { WebsocketTransporter } from '@spider-mesh/ws/node'
82
+ The relay forwards discovery, RPC, and pubsub frames. It does not host application services.
140
83
 
141
- const transporter = new WebsocketTransporter({
142
- heartbeatIntervalMs: 5000,
143
- reconnectIntervalMs: 1000,
144
- })
84
+ ## Provider Example
145
85
 
146
- transporter.connect('ws://127.0.0.1:8787')
86
+ ```ts
87
+ import { Microservice } from '@spider-mesh/core'
147
88
 
148
89
  @Microservice()
149
90
  class GreetingService {
150
- async hello(name: string) {
151
- return `hello ${name}`
152
- }
91
+ async hello(name: string) {
92
+ return `hello ${name}`
93
+ }
153
94
  }
154
95
 
155
96
  new GreetingService()
156
- new SpiderMesh({ transporters: [transporter] })
157
97
  ```
158
98
 
159
- ### 3. Start a client
99
+ ## Client Example
160
100
 
161
101
  ```ts
162
- import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core'
163
- import { WebsocketTransporter } from '@spider-mesh/ws/node'
164
-
165
- const transporter = new WebsocketTransporter({
166
- heartbeatIntervalMs: 5000,
167
- reconnectIntervalMs: 1000,
168
- })
169
-
170
- transporter.connect('ws://127.0.0.1:8787')
102
+ import { RemoteServiceLinker } from '@spider-mesh/core'
171
103
 
172
104
  type GreetingService = {
173
- hello(name: string): Promise<string>
105
+ hello(name: string): Promise<string>
174
106
  }
175
107
 
176
- const mesh = new SpiderMesh({ transporters: [transporter] })
177
108
  const greeter = RemoteServiceLinker.link<GreetingService>(mesh, {
178
- service: 'GreetingService',
179
- timeout: 5000,
109
+ service: 'GreetingService',
110
+ timeout: 5000,
180
111
  })
181
112
 
182
113
  await greeter.wait()
183
114
  console.log(await greeter.hello('world'))
184
115
  ```
185
116
 
186
- ## Transporter Options
117
+ ## WebsocketTransporter
187
118
 
188
- `WebsocketTransporter` supports these options:
119
+ `WebsocketTransporter` owns one shared WebSocket connection layer.
189
120
 
190
- - `heartbeatIntervalMs`: interval between WebSocket ping frames
191
- - `reconnectIntervalMs`: delay before reconnect attempts after disconnect
192
- - `unsubscribeDelayMs`: delay before unsubscribe is sent after the last local subscriber leaves a topic
121
+ Current responsibilities:
193
122
 
194
- It also exposes `status$` as `BehaviorSubject<Map<string, string>>` so callers can observe per-relay connection state transitions such as `connecting`, `connected`, `error`, and `not_connected`.
123
+ - maintain relay connections with automatic reconnect
124
+ - expose `status$` for per-URL connection status
125
+ - send and receive RPC frames, routing by `destination_node_id` embedded in the packet; falls back to `registry.pickRpcNode(service)` for round-robin when absent
126
+ - propagate discovery `hello` and `offline` frames
127
+ - forward pubsub messages and subscription changes
128
+ - integrate directly with `mesh.registerTransporter(transporter)`
195
129
 
196
- Example:
130
+ Current send contract:
197
131
 
198
132
  ```ts
199
- import { WebsocketTransporter } from '@spider-mesh/ws/node'
133
+ send(packet: RpcRequestPacket | RpcCancelPacket | RpcResponsePacket): Promise<{ cancel: () => void }>
134
+ ```
200
135
 
201
- const transporter = new WebsocketTransporter({
202
- heartbeatIntervalMs: 5000,
203
- reconnectIntervalMs: 1000,
204
- unsubscribeDelayMs: 10000,
205
- })
136
+ For `request` packets, the returned `cancel()` sends a `RpcCancelPacket` through the relay to the same destination node. The provider stops the running Observable on receipt. `SpiderMesh` calls `cancel()` automatically when a subscriber unsubscribes before the stream completes.
206
137
 
207
- transporter.status$.subscribe(statuses => {
208
- console.log(statuses.get('ws://127.0.0.1:8787'))
209
- })
210
- ```
138
+ Throws `MICROSERVICE_OFFLINE` immediately when a registry is linked but no node is available for the requested service.
211
139
 
212
- ## Behavioral Notes
140
+ Supported options:
213
141
 
214
- - RPC frames are forwarded as binary MsgPack payloads.
215
- - Observable-returning RPC handlers are supported.
216
- - Discovery is driven by relay `hello` and `offline` synchronization.
217
- - Pubsub subscriptions are tracked by topic on the relay.
218
- - Relay startup should happen before providers and clients.
219
- - `WebsocketRelayServer` is a relay, not an application runtime.
142
+ - `heartbeatIntervalMs`
143
+ - `reconnectIntervalMs`
144
+ - `unsubscribeDelayMs`
220
145
 
221
- ## Development Scripts
146
+ `status$` is a `BehaviorSubject<Map<string, string>>` with values such as `connecting`, `connected`, `error`, and `not_connected`.
222
147
 
223
- From this package directory:
148
+ ## Runtime Support
149
+
150
+ | Runtime | Transporter Entry | Relay Server |
151
+ | --- | --- | --- |
152
+ | Node.js | `@spider-mesh/ws/node` | supported |
153
+ | Bun | `@spider-mesh/ws/node` | supported |
154
+ | Browser | `@spider-mesh/ws/browser` | not supported |
155
+ | React Native | `@spider-mesh/ws/react-native` | not supported |
156
+
157
+ ## Tests
158
+
159
+ The package includes:
160
+
161
+ - binary transporter smoke coverage
162
+ - WebSocket connection status coverage
163
+ - SpiderMesh RPC e2e coverage
164
+ - reverse RPC 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)
173
+
174
+ Run the full suite with:
224
175
 
225
176
  ```bash
226
- bun run build
227
- bun run test:websocket
228
- bun run test:websocket:e2e
229
- bun run test:websocket:e2e:matrix
230
- bun run test:websocket:e2e:reverse
231
- bun run test:e2e
177
+ bun test
232
178
  ```
233
179
 
234
- Examples:
180
+ Build with:
235
181
 
236
182
  ```bash
237
- bun run example:websocket:server
238
- bun run example:websocket:provider
239
- bun run example:websocket:client
183
+ bun run build
240
184
  ```
241
185
 
242
- ## Examples To Read First
243
-
244
- Canonical examples in this package:
245
-
246
- - `examples/websocket-server.ts`
247
- - `examples/websocket-provider.ts`
248
- - `examples/websocket-client.ts`
249
- - `examples/websocket-e2e-test.ts`
250
- - `examples/websocket-e2e-matrix-test.ts`
251
- - `examples/websocket-e2e-round-robin-test.ts`
252
-
253
- Use these as the preferred implementation references when writing app code or generating code with AI tools.
254
-
255
- ## Relationship With Core
256
-
257
- Keep these responsibilities separate:
258
-
259
- - `@spider-mesh/core`: service runtime, decorators, remote linking, shared contracts
260
- - `@spider-mesh/ws`: built-in WebSocket transporter
261
- - `@spider-mesh/ws/relay-server`: dedicated relay process
186
+ ## Notes
262
187
 
263
- If you are not specifically implementing WebSocket transport, default to `@spider-mesh/core`.
188
+ - The package root is not exported; use runtime-specific subpaths.
189
+ - RPC and relay frames are encoded with `@msgpack/msgpack`.
190
+ - Start the relay before providers and clients.
@@ -1,5 +1,5 @@
1
1
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
2
- import type { DiscoveryTransporter, MdnsMessage, NodeMetadata, PubsubTransporter, RpcPacket, RpcTransporter, SpiderMeshNode } from '@spider-mesh/core';
2
+ import type { DiscoveryTransporter, MdnsMessage, NodeMetadata, PubsubTransporter, RpcCancelPacket, RpcRequestPacket, RpcResponsePacket, RpcTransporter, Registry } from '@spider-mesh/core';
3
3
  export type WebsocketTransporterOptions = {
4
4
  heartbeatIntervalMs?: number;
5
5
  reconnectIntervalMs?: number;
@@ -21,10 +21,12 @@ export declare abstract class BaseWebsocketTransporter extends Subject<any> impl
21
21
  protected options: WebsocketTransporterOptions;
22
22
  readonly status$: BehaviorSubject<Map<string, string>>;
23
23
  constructor(options?: WebsocketTransporterOptions);
24
- get metadata(): {};
24
+ linkRegistry(registry: Registry): void;
25
25
  connect(url: string): void;
26
26
  close(url: string): void;
27
- send(packet: RpcPacket, node: SpiderMeshNode): Promise<void>;
27
+ send(packet: RpcRequestPacket | RpcCancelPacket | RpcResponsePacket): Promise<{
28
+ cancel: () => void;
29
+ }>;
28
30
  broadcast(data: MdnsMessage<NodeMetadata>): Promise<void>;
29
31
  publish<T>(topic: string, data: T): Promise<void>;
30
32
  listen<T>(topic: string): Observable<T>;
@@ -9,13 +9,14 @@ export class BaseWebsocketTransporter extends Subject {
9
9
  #topics = new Map();
10
10
  #nodes = new Map();
11
11
  #me$ = new ReplaySubject(1);
12
+ #registry;
12
13
  status$ = new BehaviorSubject(new Map());
13
14
  constructor(options = {}) {
14
15
  super();
15
16
  this.options = options;
16
17
  }
17
- get metadata() {
18
- return {};
18
+ linkRegistry(registry) {
19
+ this.#registry = registry;
19
20
  }
20
21
  connect(url) {
21
22
  if (this.#connections.has(url))
@@ -35,13 +36,30 @@ export class BaseWebsocketTransporter extends Subject {
35
36
  this.#disconnectSocket(socket);
36
37
  }
37
38
  }
38
- async send(packet, node) {
39
- const socket = this.#selectRpcSocket(node);
39
+ async send(packet) {
40
+ const resolvedNodeId = packet.destination_node_id
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);
40
46
  await this.#sendFrame(socket, {
41
47
  type: packet.kind,
42
- target_id: node.node_id,
48
+ target_id: resolvedNodeId,
43
49
  payload: this.#encodeRpcPacket(packet),
44
50
  });
51
+ if (packet.kind === 'request') {
52
+ return {
53
+ cancel: () => {
54
+ void this.send({
55
+ kind: 'cancel',
56
+ request_id: packet.request_id,
57
+ destination_node_id: resolvedNodeId,
58
+ }).catch(() => undefined);
59
+ }
60
+ };
61
+ }
62
+ return { cancel: () => { } };
45
63
  }
46
64
  async broadcast(data) {
47
65
  const localNode = {
@@ -138,12 +156,7 @@ export class BaseWebsocketTransporter extends Subject {
138
156
  const packet = this.#decodeRpcPacket(frame);
139
157
  if (!packet)
140
158
  return;
141
- this.next({
142
- rpc: {
143
- node_id: frame.sender_id,
144
- packet
145
- }
146
- });
159
+ this.next({ rpc: packet });
147
160
  }
148
161
  on_hello(url, frame) {
149
162
  const node = frame.me;
@@ -171,8 +184,8 @@ export class BaseWebsocketTransporter extends Subject {
171
184
  topic.subject.next(frame.payload);
172
185
  }
173
186
  }
174
- #selectRpcSocket(node) {
175
- const relayUrl = this.#nodes.get(node.node_id)?.relayUrl;
187
+ #selectRpcSocket(node_id) {
188
+ const relayUrl = node_id ? this.#nodes.get(node_id)?.relayUrl : undefined;
176
189
  const routedSocket = relayUrl ? this.#connections.get(relayUrl)?.socket : undefined;
177
190
  if (routedSocket?.readyState === WEBSOCKET_OPEN) {
178
191
  return routedSocket;
@@ -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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"}
@@ -1,7 +1,7 @@
1
- import type { RpcPacket, SpiderMeshNode } from '@spider-mesh/core';
1
+ import type { SpiderMeshNode } from '@spider-mesh/core';
2
2
  export type RelayRawData = Uint8Array | ArrayBuffer | ArrayBufferView | string | RelayRawData[];
3
3
  export type RelayRpcFrame = {
4
- type: RpcPacket['kind'];
4
+ type: 'request' | 'response' | 'cancel';
5
5
  payload: Uint8Array;
6
6
  target_id?: string;
7
7
  };
@@ -1 +1 @@
1
- {"root":["../examples/websocket-client.ts","../examples/websocket-e2e-client.ts","../examples/websocket-e2e-matrix-client.ts","../examples/websocket-e2e-matrix-provider.ts","../examples/websocket-e2e-matrix-test.ts","../examples/websocket-e2e-provider.ts","../examples/websocket-e2e-reverse-client.ts","../examples/websocket-e2e-reverse-server.ts","../examples/websocket-e2e-reverse-test.ts","../examples/websocket-e2e-round-robin-client.ts","../examples/websocket-e2e-round-robin-test.ts","../examples/websocket-e2e-test.ts","../examples/websocket-provider.ts","../examples/websocket-server.ts","../examples/websocket-smoke-test.ts","../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"}
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.41",
4
+ "version": "2.0.44",
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.41"
15
+ "@spider-mesh/core": "^2.0.44"
16
16
  },
17
17
  "devDependencies": {
18
- "@spider-mesh/core": "^2.0.41",
18
+ "@spider-mesh/core": "^2.0.44",
19
19
  "@types/bun": "^1.3.13",
20
20
  "@types/node": "^25.6.0",
21
21
  "@types/ws": "^8.18.1",
package/tsconfig.json CHANGED
@@ -32,6 +32,7 @@
32
32
  "out",
33
33
  "src/schema.ts",
34
34
  "bin",
35
+ "examples",
35
36
  "tests",
36
37
  "./build/**/*"
37
38
  ]
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
2
- import { WebsocketTransporter } from '../src/node.js';
3
- const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
4
- const transporter = new WebsocketTransporter({
5
- heartbeatIntervalMs: 5000,
6
- reconnectIntervalMs: 1000,
7
- });
8
- transporter.connect(wsUrl);
9
- const mesh = new SpiderMesh({ transporters: [transporter] });
10
- const greeter = RemoteServiceLinker.link(mesh, {
11
- service: 'GreetingService',
12
- timeout: 5000,
13
- });
14
- await greeter.wait();
15
- greeter.hello('websocket client').subscribe(message => {
16
- console.log(message);
17
- });
18
- //# sourceMappingURL=websocket-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../examples/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,qBAAqB,CAAA;AAEzD,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC;IACzC,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;CAC5B,CAAC,CAAA;AACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAM1B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAC5D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAkB,IAAI,EAAE;IAC5D,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,IAAI;CAChB,CAAC,CAAA;AAEF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;AAEpB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- import { firstValueFrom, timeout } from 'rxjs';
2
- import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
3
- import { WebsocketTransporter } from '../src/node.js';
4
- const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
5
- const transporterOptions = {
6
- heartbeatIntervalMs: 1000,
7
- reconnectIntervalMs: 500,
8
- };
9
- const transporter = new WebsocketTransporter(transporterOptions);
10
- transporter.connect(wsUrl);
11
- console.log('WebSocket e2e client connected');
12
- async function main() {
13
- const mesh = new SpiderMesh({ transporters: [transporter] });
14
- const greeter = RemoteServiceLinker.link(mesh, {
15
- service: 'GreetingService',
16
- timeout: 3000,
17
- retry: 2,
18
- });
19
- const guard = setTimeout(() => {
20
- console.error('WebSocket e2e client timed out');
21
- process.exit(1);
22
- }, 10000);
23
- try {
24
- await greeter.wait(() => mesh.listRpcNodes('GreetingService').length > 0);
25
- const result = await firstValueFrom(greeter.hello('websocket e2e').pipe(timeout(5000)));
26
- console.log(result);
27
- process.exit(0);
28
- }
29
- catch (error) {
30
- console.error(error);
31
- process.exit(1);
32
- }
33
- finally {
34
- clearTimeout(guard);
35
- }
36
- }
37
- await main();
38
- //# sourceMappingURL=websocket-e2e-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket-e2e-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAmB,MAAM,MAAM,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,qBAAqB,CAAA;AACzD,MAAM,kBAAkB,GAAG;IACvB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,GAAG;CAC3B,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAA;AAChE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AAM7C,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAkB,IAAI,EAAE;QAC5D,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC;KACX,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;AACL,CAAC;AAED,MAAM,IAAI,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- export {};