@spider-mesh/ws 2.0.38 → 2.0.41
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 +34 -11
- package/build/examples/websocket-client.js +1 -1
- package/build/examples/websocket-client.js.map +1 -1
- package/build/examples/websocket-e2e-client.js +1 -1
- package/build/examples/websocket-e2e-client.js.map +1 -1
- package/build/examples/websocket-e2e-matrix-client.js +1 -1
- package/build/examples/websocket-e2e-matrix-client.js.map +1 -1
- package/build/examples/websocket-e2e-matrix-provider.js +1 -1
- package/build/examples/websocket-e2e-matrix-provider.js.map +1 -1
- package/build/examples/websocket-e2e-provider.js +1 -1
- package/build/examples/websocket-e2e-provider.js.map +1 -1
- package/build/examples/websocket-e2e-reverse-client.js +1 -1
- package/build/examples/websocket-e2e-reverse-client.js.map +1 -1
- package/build/examples/websocket-e2e-reverse-server.js +1 -1
- package/build/examples/websocket-e2e-reverse-server.js.map +1 -1
- package/build/examples/websocket-e2e-round-robin-client.js +1 -1
- package/build/examples/websocket-e2e-round-robin-client.js.map +1 -1
- package/build/examples/websocket-provider.js +1 -1
- package/build/examples/websocket-provider.js.map +1 -1
- package/build/examples/websocket-server.js +1 -1
- package/build/examples/websocket-server.js.map +1 -1
- package/build/examples/websocket-smoke-test.js +7 -11
- package/build/examples/websocket-smoke-test.js.map +1 -1
- package/build/src/BaseWebsocketTransporter.d.ts +39 -0
- package/build/src/BaseWebsocketTransporter.js +272 -0
- package/build/src/BaseWebsocketTransporter.js.map +1 -0
- package/build/src/GlobalWebsocketTransporter.d.ts +6 -0
- package/build/src/GlobalWebsocketTransporter.js +17 -0
- package/build/src/GlobalWebsocketTransporter.js.map +1 -0
- package/build/src/WebsocketTransporter.d.ts +4 -26
- package/build/src/WebsocketTransporter.js +8 -269
- package/build/src/WebsocketTransporter.js.map +1 -1
- package/build/src/browser.d.ts +1 -0
- package/build/src/browser.js +2 -0
- package/build/src/browser.js.map +1 -0
- package/build/src/index.d.ts +1 -1
- package/build/src/index.js +2 -1
- package/build/src/index.js.map +1 -1
- package/build/src/node.d.ts +1 -0
- package/build/src/node.js +2 -0
- package/build/src/node.js.map +1 -0
- package/build/src/react-native.d.ts +1 -0
- package/build/src/react-native.js +2 -0
- package/build/src/react-native.js.map +1 -0
- package/build/src/websocketProtocol.d.ts +2 -2
- package/build/src/websocketProtocol.js +2 -0
- package/build/src/websocketProtocol.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -8
package/README.md
CHANGED
|
@@ -46,14 +46,21 @@ bun add @spider-mesh/core @spider-mesh/ws rxjs reflect-metadata
|
|
|
46
46
|
|
|
47
47
|
Keep `@spider-mesh/ws` and `@spider-mesh/core` on matching published versions so transporter/runtime contracts stay aligned.
|
|
48
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
|
+
|
|
49
56
|
This package is ESM-only.
|
|
50
57
|
|
|
51
58
|
## Export Surface
|
|
52
59
|
|
|
53
|
-
|
|
60
|
+
Transporter entries:
|
|
54
61
|
|
|
55
62
|
```ts
|
|
56
|
-
import { WebsocketTransporter } from '@spider-mesh/ws'
|
|
63
|
+
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
57
64
|
```
|
|
58
65
|
|
|
59
66
|
Relay server entry:
|
|
@@ -66,20 +73,34 @@ Recommended full import shape:
|
|
|
66
73
|
|
|
67
74
|
```ts
|
|
68
75
|
import { SpiderMesh, Microservice, RemoteServiceLinker } from '@spider-mesh/core'
|
|
69
|
-
import { WebsocketTransporter } from '@spider-mesh/ws'
|
|
76
|
+
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
70
77
|
import { WebsocketRelayServer } from '@spider-mesh/ws/relay-server'
|
|
71
78
|
```
|
|
72
79
|
|
|
73
80
|
## Runtime Support
|
|
74
81
|
|
|
75
|
-
| Runtime |
|
|
82
|
+
| Runtime | Transporter Entry | Relay Server Entry |
|
|
76
83
|
| --- | --- | --- |
|
|
77
|
-
| Node.js |
|
|
78
|
-
| Bun |
|
|
79
|
-
| Browser |
|
|
80
|
-
| React Native |
|
|
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.
|
|
90
|
+
|
|
91
|
+
`@spider-mesh/ws/node` uses the `ws` client implementation for Node.js and Bun.
|
|
81
92
|
|
|
82
|
-
|
|
93
|
+
`@spider-mesh/ws/browser` and `@spider-mesh/ws/react-native` use the native `globalThis.WebSocket` client API.
|
|
94
|
+
|
|
95
|
+
`@spider-mesh/ws/relay-server` remains Node.js or Bun only.
|
|
96
|
+
|
|
97
|
+
Import the runtime-specific transporter from the matching subpath:
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
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
|
+
```
|
|
83
104
|
|
|
84
105
|
## Architecture
|
|
85
106
|
|
|
@@ -115,7 +136,7 @@ console.log(`WebSocket relay listening on ws://127.0.0.1:${server.port}`)
|
|
|
115
136
|
|
|
116
137
|
```ts
|
|
117
138
|
import { Microservice, SpiderMesh } from '@spider-mesh/core'
|
|
118
|
-
import { WebsocketTransporter } from '@spider-mesh/ws'
|
|
139
|
+
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
119
140
|
|
|
120
141
|
const transporter = new WebsocketTransporter({
|
|
121
142
|
heartbeatIntervalMs: 5000,
|
|
@@ -139,7 +160,7 @@ new SpiderMesh({ transporters: [transporter] })
|
|
|
139
160
|
|
|
140
161
|
```ts
|
|
141
162
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core'
|
|
142
|
-
import { WebsocketTransporter } from '@spider-mesh/ws'
|
|
163
|
+
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
143
164
|
|
|
144
165
|
const transporter = new WebsocketTransporter({
|
|
145
166
|
heartbeatIntervalMs: 5000,
|
|
@@ -175,6 +196,8 @@ It also exposes `status$` as `BehaviorSubject<Map<string, string>>` so callers c
|
|
|
175
196
|
Example:
|
|
176
197
|
|
|
177
198
|
```ts
|
|
199
|
+
import { WebsocketTransporter } from '@spider-mesh/ws/node'
|
|
200
|
+
|
|
178
201
|
const transporter = new WebsocketTransporter({
|
|
179
202
|
heartbeatIntervalMs: 5000,
|
|
180
203
|
reconnectIntervalMs: 1000,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
|
|
2
|
-
import { WebsocketTransporter } from '../src/
|
|
2
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
3
3
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
4
4
|
const transporter = new WebsocketTransporter({
|
|
5
5
|
heartbeatIntervalMs: 5000,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { firstValueFrom, timeout } from 'rxjs';
|
|
2
2
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const transporterOptions = {
|
|
6
6
|
heartbeatIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom, lastValueFrom, timeout, toArray } from 'rxjs';
|
|
2
2
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const transporterOptions = {
|
|
6
6
|
heartbeatIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-matrix-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-matrix-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-matrix-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-matrix-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { concat, of, throwError } from 'rxjs';
|
|
3
3
|
import { delay } from 'rxjs/operators';
|
|
4
4
|
import { Microservice, SpiderMesh } from '@spider-mesh/core';
|
|
5
|
-
import { WebsocketTransporter } from '../src/
|
|
5
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
6
6
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
7
7
|
const transporter = new WebsocketTransporter({
|
|
8
8
|
heartbeatIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-matrix-provider.js","sourceRoot":"","sources":["../../examples/websocket-e2e-matrix-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-matrix-provider.js","sourceRoot":"","sources":["../../examples/websocket-e2e-matrix-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,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,GAAG;CAC3B,CAAC,CAAA;AACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAG1B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAClB,SAAS,CAAC,IAAY;QAClB,OAAO,QAAQ,IAAI,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,OAAO,SAAS,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,MAAM,CACT,EAAE,CAAC,mBAAmB,IAAI,IAAI,CAAC,EAC/B,EAAE,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAClD,CAAA;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,OAAO,MAAM,CACT,EAAE,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAChD,EAAE,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACnD,CAAA;IACL,CAAC;IAED,SAAS;QACL,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;IAClC,CAAC;IAED,eAAe;QACX,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC1D,CAAC;CACJ,CAAA;AAlCK,gBAAgB;IADrB,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;GACjD,gBAAgB,CAkCrB;AAED,IAAI,gBAAgB,EAAE,CAAA;AACtB,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAE/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;AAE9D,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Microservice, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const providerId = process.env.PROVIDER_ID || 'provider';
|
|
6
6
|
const transporter = new WebsocketTransporter({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-provider.js","sourceRoot":"","sources":["../../examples/websocket-e2e-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-provider.js","sourceRoot":"","sources":["../../examples/websocket-e2e-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,qBAAqB,CAAA;AACzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,CAAA;AAExD,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC;IACzC,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,GAAG;CAC3B,CAAC,CAAA;AACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAG1B,IAAM,eAAe,GAArB,MAAM,eAAe;IACjB,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,OAAO,SAAS,IAAI,SAAS,UAAU,EAAE,CAAA;IAC7C,CAAC;CACJ,CAAA;AAJK,eAAe;IADpB,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GAC1C,eAAe,CAIpB;AAED,IAAI,eAAe,EAAE,CAAA;AACrB,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAE/C,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,KAAK,UAAU,GAAG,CAAC,CAAA;AAEvE,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Microservice, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const transporterOptions = {
|
|
6
6
|
heartbeatIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-reverse-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-reverse-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-reverse-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-reverse-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,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,wCAAwC,CAAC,CAAA;AAGrD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACxB,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,OAAO,SAAS,IAAI,cAAc,CAAA;IACtC,CAAC;CACJ,CAAA;AAJK,sBAAsB;IAD3B,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;GAChD,sBAAsB,CAI3B;AAED,IAAI,sBAAsB,EAAE,CAAA;AAC5B,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAE/C,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { firstValueFrom, timeout } from 'rxjs';
|
|
2
2
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const transporterOptions = {
|
|
6
6
|
heartbeatIntervalMs: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-reverse-server.js","sourceRoot":"","sources":["../../examples/websocket-e2e-reverse-server.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,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-reverse-server.js","sourceRoot":"","sources":["../../examples/websocket-e2e-reverse-server.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;AAEzD,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,wCAAwC,CAAC,CAAA;AAMrD,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAyB,IAAI,EAAE;QACrE,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC;KACX,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,IAAI,CAAC;QACD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAClF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjG,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,6 +1,6 @@
|
|
|
1
1
|
import { firstValueFrom, timeout } from 'rxjs';
|
|
2
2
|
import { RemoteServiceLinker, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
async function main() {
|
|
6
6
|
const transporter = new WebsocketTransporter({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-e2e-round-robin-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-round-robin-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,
|
|
1
|
+
{"version":3,"file":"websocket-e2e-round-robin-client.js","sourceRoot":"","sources":["../../examples/websocket-e2e-round-robin-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;AAMzD,KAAK,UAAU,IAAI;IACf,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC;QACzC,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,GAAG;KAC3B,CAAC,CAAA;IACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IAErD,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,wCAAwC,CAAC,CAAA;QACvD,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,IAAI,CAAC,CAAC,CAAA;QAE1E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9B,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACrE,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACxC,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,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Microservice, SpiderMesh } from '@spider-mesh/core';
|
|
3
|
-
import { WebsocketTransporter } from '../src/
|
|
3
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
4
4
|
const wsUrl = process.env.WS_URL || 'ws://127.0.0.1:8787';
|
|
5
5
|
const transporter = new WebsocketTransporter({
|
|
6
6
|
heartbeatIntervalMs: 5000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-provider.js","sourceRoot":"","sources":["../../examples/websocket-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-provider.js","sourceRoot":"","sources":["../../examples/websocket-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,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;AAG1B,IAAM,eAAe,GAArB,MAAM,eAAe;IACjB,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,OAAO,SAAS,IAAI,gBAAgB,CAAA;IACxC,CAAC;CACJ,CAAA;AAJK,eAAe;IADpB,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GAC7B,eAAe,CAIpB;AAED,IAAI,eAAe,EAAE,CAAA;AACrB,IAAI,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAE/C,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebsocketRelayServer } from '../src/relay-server.js';
|
|
2
|
-
const host = process.env.WS_HOST || '
|
|
2
|
+
const host = process.env.WS_HOST || '0.0.0.0';
|
|
3
3
|
const port = Number(process.env.WS_PORT || 8787);
|
|
4
4
|
const server = new WebsocketRelayServer({ port, host });
|
|
5
5
|
console.log(`WebSocket relay server listening on ws://${host}:${server.port}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../examples/websocket-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../examples/websocket-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAA;AAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAA;AAChD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAEvD,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom, filter, timeout } from 'rxjs';
|
|
2
2
|
import WebSocket from 'ws';
|
|
3
3
|
import { WebsocketRelayServer } from '../src/relay-server.js';
|
|
4
|
-
import { WebsocketTransporter } from '../src/
|
|
4
|
+
import { WebsocketTransporter } from '../src/node.js';
|
|
5
5
|
import { encodeRelayFrame } from '../src/websocketProtocol.js';
|
|
6
6
|
const port = 8800 + Math.floor(Math.random() * 200);
|
|
7
7
|
const baseWsUrl = `ws://127.0.0.1:${port}`;
|
|
@@ -13,7 +13,6 @@ const server = new WebsocketRelayServer({
|
|
|
13
13
|
isServerConnection: (_socket, request) => new URL(request.url || '/', baseWsUrl).searchParams.get('role') === 'server',
|
|
14
14
|
});
|
|
15
15
|
const nodeA = {
|
|
16
|
-
ips: ['127.0.0.1'],
|
|
17
16
|
host: '127.0.0.1',
|
|
18
17
|
namespace: 'test',
|
|
19
18
|
version: 1,
|
|
@@ -23,7 +22,6 @@ const nodeA = {
|
|
|
23
22
|
transporters: { websocket: {} },
|
|
24
23
|
};
|
|
25
24
|
const nodeB = {
|
|
26
|
-
ips: ['127.0.0.1'],
|
|
27
25
|
host: '127.0.0.1',
|
|
28
26
|
namespace: 'test',
|
|
29
27
|
version: 1,
|
|
@@ -33,7 +31,6 @@ const nodeB = {
|
|
|
33
31
|
transporters: { websocket: {} },
|
|
34
32
|
};
|
|
35
33
|
const nodeC = {
|
|
36
|
-
ips: ['127.0.0.1'],
|
|
37
34
|
host: '127.0.0.1',
|
|
38
35
|
namespace: 'test',
|
|
39
36
|
version: 1,
|
|
@@ -81,9 +78,9 @@ async function main() {
|
|
|
81
78
|
const discoveryC = firstValueFrom(transporterC.pipe(filter((event) => !!event?.discovered?.node_id && event.discovered.node_id === nodeB.node_id), timeout(5000)));
|
|
82
79
|
const noDiscoveryOnClient = expectNoEvent(transporterB.pipe(filter((event) => !!event?.discovered?.node_id && (event.discovered.node_id === nodeA.node_id || event.discovered.node_id === nodeC.node_id))));
|
|
83
80
|
await Promise.all([
|
|
84
|
-
transporterA.broadcast(createDiscoveryMessage(nodeA)
|
|
85
|
-
transporterB.broadcast(createDiscoveryMessage(nodeB)
|
|
86
|
-
transporterC.broadcast(createDiscoveryMessage(nodeC)
|
|
81
|
+
transporterA.broadcast(createDiscoveryMessage(nodeA)),
|
|
82
|
+
transporterB.broadcast(createDiscoveryMessage(nodeB)),
|
|
83
|
+
transporterC.broadcast(createDiscoveryMessage(nodeC)),
|
|
87
84
|
]);
|
|
88
85
|
await Promise.all([discoveryA, discoveryC, noDiscoveryOnClient]);
|
|
89
86
|
const rpcMessage = firstValueFrom(transporterB.pipe(filter(event => event?.rpc?.packet?.request_id === 'smoke-request'), timeout(5000)));
|
|
@@ -138,7 +135,7 @@ async function main() {
|
|
|
138
135
|
throw new Error(`Unexpected pubsub payload on server C: ${JSON.stringify(pubsubEventC)}`);
|
|
139
136
|
}
|
|
140
137
|
const offlineEventC = firstValueFrom(transporterC.pipe(filter(event => event?.offline === nodeA.node_id), timeout(5000)));
|
|
141
|
-
transporterA.close();
|
|
138
|
+
transporterA.close(serverWsUrl);
|
|
142
139
|
await offlineEventC;
|
|
143
140
|
const rawNodeId = 'raw-node';
|
|
144
141
|
const rawSocket = new WebSocket(clientWsUrl);
|
|
@@ -151,7 +148,6 @@ async function main() {
|
|
|
151
148
|
me: {
|
|
152
149
|
...nodeA,
|
|
153
150
|
node_id: rawNodeId,
|
|
154
|
-
online: true,
|
|
155
151
|
},
|
|
156
152
|
}));
|
|
157
153
|
const staleOfflineEvent = firstValueFrom(transporterC.pipe(filter(event => event?.offline === rawNodeId), timeout(5000)));
|
|
@@ -160,8 +156,8 @@ async function main() {
|
|
|
160
156
|
console.log('WebSocket binary smoke test passed');
|
|
161
157
|
}
|
|
162
158
|
finally {
|
|
163
|
-
transporterB.close();
|
|
164
|
-
transporterC.close();
|
|
159
|
+
transporterB.close(clientWsUrl);
|
|
160
|
+
transporterC.close(serverWsUrl);
|
|
165
161
|
server.close();
|
|
166
162
|
}
|
|
167
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-smoke-test.js","sourceRoot":"","sources":["../../examples/websocket-smoke-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAmB,MAAM,MAAM,CAAA;AACvE,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"websocket-smoke-test.js","sourceRoot":"","sources":["../../examples/websocket-smoke-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAmB,MAAM,MAAM,CAAA;AACvE,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAG9D,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;AACnD,MAAM,SAAS,GAAG,kBAAkB,IAAI,EAAE,CAAA;AAC1C,MAAM,WAAW,GAAG,GAAG,SAAS,cAAc,CAAA;AAC9C,MAAM,WAAW,GAAG,GAAG,SAAS,cAAc,CAAA;AAC9C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC;IACpC,IAAI;IACJ,IAAI,EAAE,WAAW;IACjB,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;CACzH,CAAC,CAAA;AAEF,MAAM,KAAK,GAAmB;IAC1B,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;IACjC,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;CAClC,CAAA;AAED,MAAM,KAAK,GAAmB;IAC1B,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;CAClC,CAAA;AAED,MAAM,KAAK,GAAmB;IAC1B,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;CAClC,CAAA;AAED,SAAS,sBAAsB,CAAC,IAAoB;IAChD,OAAO;QACH,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,OAAO;KAC1B,CAAA;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAI,MAAqB,EAAE,MAAM,GAAG,GAAG;IAC/D,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QACvC,QAAQ,GAAG,IAAI,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IACzD,YAAY,CAAC,WAAW,EAAE,CAAA;IAE1B,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAChD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC;QAC1C,mBAAmB,EAAE,GAAG;QACxB,mBAAmB,EAAE,GAAG;KAC3B,CAAC,CAAA;IACF,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAEjC,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC;QAC1C,mBAAmB,EAAE,GAAG;QACxB,mBAAmB,EAAE,GAAG;KAC3B,CAAC,CAAA;IACF,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAEjC,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC;QAC1C,mBAAmB,EAAE,GAAG;QACxB,mBAAmB,EAAE,GAAG;KAC3B,CAAC,CAAA;IACF,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAEjC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAC/C,MAAM,CAAC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EACtH,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAC/C,MAAM,CAAC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EACtH,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CACvD,MAAM,CAAC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CACzK,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrD,YAAY,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrD,YAAY,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACxD,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAEhE,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAC/C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,KAAK,eAAe,CAAC,EACnE,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAc;YACtB,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,eAAe;YAC3B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,CAAC,OAAO,CAAC;SAClB,CAAA;QAED,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAEtC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAA;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACtF,CAAC;QAED,MAAM,YAAY,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,gBAAgB;YAC5B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,cAAc,EAAE,KAAK,CAAC,OAAO;SAChC,EAAE,KAAK,CAAC,CAAA;QAET,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAClC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC,EAC1G,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,iBAAiB;YAC7B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,CAAC,SAAS,CAAC;SACpB,EAAE,KAAK,CAAC,CAAA;QAET,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CACjC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,KAAK,iBAAiB,CAAC,CACxE,CAAC,CAAA;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,gBAAgB;YAC5B,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,cAAc,EAAE,KAAK,CAAC,OAAO;SAChC,EAAE,KAAK,CAAC,CAAA;QAET,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CACjC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAC7G,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAA+B,SAAS,CAAC,CAAA;QAClF,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CACpD,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAA+B,SAAS,CAAC,CAAC,IAAI,CACnG,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAErD,MAAM,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;QAEzE,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7F,CAAC;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAClD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EACjD,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAE/B,MAAM,aAAa,CAAA;QAEnB,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YACvC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC5B,IAAI,EAAE,OAAO;YACb,EAAE,EAAE;gBACA,GAAG,KAAK;gBACR,OAAO,EAAE,SAAS;aACrB;SACJ,CAAC,CAAC,CAAA;QAEH,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CACtD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,EAC7C,OAAO,CAAC,IAAI,CAAC,CAChB,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,EAAE,CAAA;QACjB,MAAM,iBAAiB,CAAA;QAEvB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IACrD,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC/B,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;AACL,CAAC;AAED,MAAM,IAAI,EAAE,CAAA;AACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
2
|
+
import type { DiscoveryTransporter, MdnsMessage, NodeMetadata, PubsubTransporter, RpcPacket, RpcTransporter, SpiderMeshNode } from '@spider-mesh/core';
|
|
3
|
+
export type WebsocketTransporterOptions = {
|
|
4
|
+
heartbeatIntervalMs?: number;
|
|
5
|
+
reconnectIntervalMs?: number;
|
|
6
|
+
unsubscribeDelayMs?: number;
|
|
7
|
+
};
|
|
8
|
+
export type WebSocketLike = {
|
|
9
|
+
readyState: number;
|
|
10
|
+
binaryType?: BinaryType;
|
|
11
|
+
close(): void;
|
|
12
|
+
send(data: Uint8Array, options?: {
|
|
13
|
+
binary?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
ping?(): void;
|
|
16
|
+
terminate?(): void;
|
|
17
|
+
};
|
|
18
|
+
export type WebsocketConnectionStatus = 'connecting' | 'connected' | 'error' | 'not_connected';
|
|
19
|
+
export declare abstract class BaseWebsocketTransporter extends Subject<any> implements RpcTransporter, DiscoveryTransporter, PubsubTransporter {
|
|
20
|
+
#private;
|
|
21
|
+
protected options: WebsocketTransporterOptions;
|
|
22
|
+
readonly status$: BehaviorSubject<Map<string, string>>;
|
|
23
|
+
constructor(options?: WebsocketTransporterOptions);
|
|
24
|
+
get metadata(): {};
|
|
25
|
+
connect(url: string): void;
|
|
26
|
+
close(url: string): void;
|
|
27
|
+
send(packet: RpcPacket, node: SpiderMeshNode): Promise<void>;
|
|
28
|
+
broadcast(data: MdnsMessage<NodeMetadata>): Promise<void>;
|
|
29
|
+
publish<T>(topic: string, data: T): Promise<void>;
|
|
30
|
+
listen<T>(topic: string): Observable<T>;
|
|
31
|
+
protected abstract createSocket(url: string): Promise<WebSocketLike> | WebSocketLike;
|
|
32
|
+
private on_request;
|
|
33
|
+
private on_response;
|
|
34
|
+
private on_cancel;
|
|
35
|
+
private on_rpc;
|
|
36
|
+
private on_hello;
|
|
37
|
+
private on_offline;
|
|
38
|
+
private on_publish;
|
|
39
|
+
}
|