@livestore/webmesh 0.0.0-snapshot-12c4570d047bcfaefc85bc6243c1b61f57580913 → 0.0.0-snapshot-ee8e0fc3b894cf3159269c9c8969a8fc4b398dca
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 +3 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/channel/message-channel-internal.js +1 -1
- package/dist/channel/message-channel-internal.js.map +1 -1
- package/dist/channel/proxy-channel.js +1 -1
- package/dist/channel/proxy-channel.js.map +1 -1
- package/dist/common.d.ts +16 -1
- package/dist/common.d.ts.map +1 -1
- package/dist/mesh-schema.d.ts +22 -1
- package/dist/mesh-schema.d.ts.map +1 -1
- package/dist/mesh-schema.js +20 -2
- package/dist/mesh-schema.js.map +1 -1
- package/dist/node.d.ts +4 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +111 -39
- package/dist/node.js.map +1 -1
- package/dist/node.test.js +37 -0
- package/dist/node.test.js.map +1 -1
- package/package.json +3 -3
- package/src/channel/message-channel-internal.ts +1 -1
- package/src/channel/proxy-channel.ts +1 -1
- package/src/common.ts +1 -1
- package/src/mesh-schema.ts +26 -2
- package/src/node.test.ts +46 -0
- package/src/node.ts +156 -57
package/dist/node.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.test.js","sourceRoot":"","sources":["../src/node.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.test.js","sourceRoot":"","sources":["../src/node.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/webmesh",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-ee8e0fc3b894cf3159269c9c8969a8fc4b398dca",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"types": "./dist/mod.d.ts",
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"ws": "8.18.0",
|
|
19
|
-
"@livestore/common": "0.0.0-snapshot-
|
|
20
|
-
"@livestore/utils": "0.0.0-snapshot-
|
|
19
|
+
"@livestore/common": "0.0.0-snapshot-ee8e0fc3b894cf3159269c9c8969a8fc4b398dca",
|
|
20
|
+
"@livestore/utils": "0.0.0-snapshot-ee8e0fc3b894cf3159269c9c8969a8fc4b398dca"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/ws": "^8.18.0",
|
|
@@ -123,7 +123,7 @@ export const makeProxyChannel = ({
|
|
|
123
123
|
// yield* Effect.log(`${nodeName}:processing packet ${packet._tag} from ${packet.source}`)
|
|
124
124
|
|
|
125
125
|
const otherSideName = packet.source
|
|
126
|
-
const channelKey =
|
|
126
|
+
const channelKey = `target:${otherSideName}, channelName:${packet.channelName}` satisfies ChannelKey
|
|
127
127
|
const channelState = channelStateRef.current
|
|
128
128
|
|
|
129
129
|
switch (packet._tag) {
|
package/src/common.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type MessageQueueItem = {
|
|
|
15
15
|
export type MeshNodeName = string
|
|
16
16
|
|
|
17
17
|
export type ChannelName = string
|
|
18
|
-
export type ChannelKey =
|
|
18
|
+
export type ChannelKey = `target:${MeshNodeName}, channelName:${ChannelName}`
|
|
19
19
|
|
|
20
20
|
// TODO actually use this to avoid timeouts in certain cases
|
|
21
21
|
export class NoConnectionRouteSignal extends Schema.TaggedError<NoConnectionRouteSignal>()(
|
package/src/mesh-schema.ts
CHANGED
|
@@ -86,13 +86,31 @@ export class ProxyChannelPayloadAck extends Schema.TaggedStruct('ProxyChannelPay
|
|
|
86
86
|
* Broadcast to all nodes when a new connection is added.
|
|
87
87
|
* Mostly used for auto-reconnect purposes.
|
|
88
88
|
*/
|
|
89
|
-
// TODO actually use for this use case
|
|
90
89
|
export class NetworkConnectionAdded extends Schema.TaggedStruct('NetworkConnectionAdded', {
|
|
91
90
|
id,
|
|
92
91
|
source: Schema.String,
|
|
93
92
|
target: Schema.String,
|
|
94
93
|
}) {}
|
|
95
94
|
|
|
95
|
+
export class NetworkConnectionTopologyRequest extends Schema.TaggedStruct('NetworkConnectionTopologyRequest', {
|
|
96
|
+
id,
|
|
97
|
+
hops: Schema.Array(Schema.String),
|
|
98
|
+
/** Always fixed to who requested the topology */
|
|
99
|
+
source: Schema.String,
|
|
100
|
+
target: Schema.Literal('-'),
|
|
101
|
+
}) {}
|
|
102
|
+
|
|
103
|
+
export class NetworkConnectionTopologyResponse extends Schema.TaggedStruct('NetworkConnectionTopologyResponse', {
|
|
104
|
+
id,
|
|
105
|
+
reqId: Schema.String,
|
|
106
|
+
remainingHops: Schema.Array(Schema.String),
|
|
107
|
+
nodeName: Schema.String,
|
|
108
|
+
connections: Schema.Array(Schema.String),
|
|
109
|
+
/** Always fixed to who requested the topology */
|
|
110
|
+
source: Schema.String,
|
|
111
|
+
target: Schema.Literal('-'),
|
|
112
|
+
}) {}
|
|
113
|
+
|
|
96
114
|
export class MessageChannelPacket extends Schema.Union(
|
|
97
115
|
MessageChannelRequest,
|
|
98
116
|
MessageChannelResponseSuccess,
|
|
@@ -106,7 +124,13 @@ export class ProxyChannelPacket extends Schema.Union(
|
|
|
106
124
|
ProxyChannelPayloadAck,
|
|
107
125
|
) {}
|
|
108
126
|
|
|
109
|
-
export class Packet extends Schema.Union(
|
|
127
|
+
export class Packet extends Schema.Union(
|
|
128
|
+
MessageChannelPacket,
|
|
129
|
+
ProxyChannelPacket,
|
|
130
|
+
NetworkConnectionAdded,
|
|
131
|
+
NetworkConnectionTopologyRequest,
|
|
132
|
+
NetworkConnectionTopologyResponse,
|
|
133
|
+
) {}
|
|
110
134
|
|
|
111
135
|
export class MessageChannelPing extends Schema.TaggedStruct('MessageChannelPing', {}) {}
|
|
112
136
|
export class MessageChannelPong extends Schema.TaggedStruct('MessageChannelPong', {}) {}
|
package/src/node.test.ts
CHANGED
|
@@ -204,6 +204,8 @@ Vitest.describe('webmesh node', { timeout: testTimeout }, () => {
|
|
|
204
204
|
channelType,
|
|
205
205
|
delays: { x: delayX, y: delayY, connect: connectDelay },
|
|
206
206
|
})
|
|
207
|
+
|
|
208
|
+
yield* Effect.promise(() => nodeX.debug.requestTopology(100))
|
|
207
209
|
}).pipe(
|
|
208
210
|
withCtx(test, {
|
|
209
211
|
skipOtel: true,
|
|
@@ -759,6 +761,50 @@ Vitest.describe('webmesh node', { timeout: testTimeout }, () => {
|
|
|
759
761
|
)
|
|
760
762
|
})
|
|
761
763
|
|
|
764
|
+
/**
|
|
765
|
+
* A E
|
|
766
|
+
* \ /
|
|
767
|
+
* C---D
|
|
768
|
+
* / \
|
|
769
|
+
* B F
|
|
770
|
+
*
|
|
771
|
+
* Topology: Butterfly topology with two connected hubs (C-D) each serving multiple nodes
|
|
772
|
+
*/
|
|
773
|
+
Vitest.describe('butterfly topology', () => {
|
|
774
|
+
Vitest.scopedLive('should work', (test) =>
|
|
775
|
+
Effect.gen(function* () {
|
|
776
|
+
const nodeA = yield* makeMeshNode('A')
|
|
777
|
+
const nodeB = yield* makeMeshNode('B')
|
|
778
|
+
const nodeC = yield* makeMeshNode('C')
|
|
779
|
+
const nodeD = yield* makeMeshNode('D')
|
|
780
|
+
const nodeE = yield* makeMeshNode('E')
|
|
781
|
+
const nodeF = yield* makeMeshNode('F')
|
|
782
|
+
|
|
783
|
+
yield* connectNodesViaMessageChannel(nodeA, nodeC)
|
|
784
|
+
yield* connectNodesViaMessageChannel(nodeB, nodeC)
|
|
785
|
+
yield* connectNodesViaMessageChannel(nodeC, nodeD)
|
|
786
|
+
yield* connectNodesViaMessageChannel(nodeD, nodeE)
|
|
787
|
+
yield* connectNodesViaMessageChannel(nodeD, nodeF)
|
|
788
|
+
|
|
789
|
+
yield* Effect.promise(() => nodeA.debug.requestTopology(100))
|
|
790
|
+
|
|
791
|
+
const nodeACode = Effect.gen(function* () {
|
|
792
|
+
const channelAToE = yield* createChannel(nodeA, 'E')
|
|
793
|
+
yield* channelAToE.send({ message: 'A1' })
|
|
794
|
+
expect(yield* getFirstMessage(channelAToE)).toEqual({ message: 'E1' })
|
|
795
|
+
})
|
|
796
|
+
|
|
797
|
+
const nodeECode = Effect.gen(function* () {
|
|
798
|
+
const channelEToA = yield* createChannel(nodeE, 'A')
|
|
799
|
+
yield* channelEToA.send({ message: 'E1' })
|
|
800
|
+
expect(yield* getFirstMessage(channelEToA)).toEqual({ message: 'A1' })
|
|
801
|
+
})
|
|
802
|
+
|
|
803
|
+
yield* Effect.all([nodeACode, nodeECode], { concurrency: 'unbounded' })
|
|
804
|
+
}).pipe(withCtx(test)),
|
|
805
|
+
)
|
|
806
|
+
})
|
|
807
|
+
|
|
762
808
|
Vitest.describe('mixture of messagechannel and proxy connections', () => {
|
|
763
809
|
// TODO test case to better guard against case where side A tries to create a proxy channel to B
|
|
764
810
|
// and side B tries to create a messagechannel to A
|
package/src/node.ts
CHANGED
|
@@ -31,6 +31,10 @@ export interface MeshNode {
|
|
|
31
31
|
print: () => void
|
|
32
32
|
/** Sends a ping message to all connected nodes and channels */
|
|
33
33
|
ping: (payload?: string) => void
|
|
34
|
+
/**
|
|
35
|
+
* Requests the topology of the network from all connected nodes
|
|
36
|
+
*/
|
|
37
|
+
requestTopology: (timeoutMs?: number) => Promise<void>
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
/**
|
|
@@ -130,6 +134,9 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
130
134
|
}
|
|
131
135
|
>()
|
|
132
136
|
|
|
137
|
+
type RequestId = string
|
|
138
|
+
const topologyRequestsMap = new Map<RequestId, Map<MeshNodeName, Set<MeshNodeName>>>()
|
|
139
|
+
|
|
133
140
|
const checkTransferableConnections = (packet: typeof WebmeshSchema.MessageChannelPacket.Type) => {
|
|
134
141
|
if (
|
|
135
142
|
(packet._tag === 'MessageChannelRequest' &&
|
|
@@ -170,6 +177,63 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
170
177
|
return
|
|
171
178
|
}
|
|
172
179
|
|
|
180
|
+
if (Schema.is(WebmeshSchema.NetworkConnectionTopologyRequest)(packet)) {
|
|
181
|
+
if (packet.source !== nodeName) {
|
|
182
|
+
const backConnectionName =
|
|
183
|
+
packet.hops.at(-1) ?? shouldNeverHappen(`${nodeName}: Expected hops for packet`, packet)
|
|
184
|
+
const backConnectionChannel = connectionChannels.get(backConnectionName)!.channel
|
|
185
|
+
|
|
186
|
+
// Respond with own connection info
|
|
187
|
+
const response = WebmeshSchema.NetworkConnectionTopologyResponse.make({
|
|
188
|
+
reqId: packet.id,
|
|
189
|
+
source: packet.source,
|
|
190
|
+
target: packet.target,
|
|
191
|
+
remainingHops: packet.hops.slice(0, -1),
|
|
192
|
+
nodeName,
|
|
193
|
+
connections: Array.from(connectionChannels.keys()),
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
yield* backConnectionChannel.send(response)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Forward the packet to all connections except the already visited ones
|
|
200
|
+
const connectionsToForwardTo = Array.from(connectionChannels)
|
|
201
|
+
.filter(([name]) => !packet.hops.includes(name))
|
|
202
|
+
.map(([_, con]) => con.channel)
|
|
203
|
+
|
|
204
|
+
const adjustedPacket = {
|
|
205
|
+
...packet,
|
|
206
|
+
hops: [...packet.hops, nodeName],
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
yield* Effect.forEach(connectionsToForwardTo, (con) => con.send(adjustedPacket), { concurrency: 'unbounded' })
|
|
210
|
+
|
|
211
|
+
return
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (Schema.is(WebmeshSchema.NetworkConnectionTopologyResponse)(packet)) {
|
|
215
|
+
if (packet.source === nodeName) {
|
|
216
|
+
const topologyRequestItem = topologyRequestsMap.get(packet.reqId)!
|
|
217
|
+
topologyRequestItem.set(packet.nodeName, new Set(packet.connections))
|
|
218
|
+
} else {
|
|
219
|
+
const remainingHops = packet.remainingHops
|
|
220
|
+
// Forwarding the response to the original sender via the route back
|
|
221
|
+
const routeBack =
|
|
222
|
+
remainingHops.at(-1) ?? shouldNeverHappen(`${nodeName}: Expected remaining hops for packet`, packet)
|
|
223
|
+
const connectionChannel =
|
|
224
|
+
connectionChannels.get(routeBack)?.channel ??
|
|
225
|
+
shouldNeverHappen(
|
|
226
|
+
`${nodeName}: Expected connection channel (${routeBack}) for packet`,
|
|
227
|
+
packet,
|
|
228
|
+
'Available connections:',
|
|
229
|
+
Array.from(connectionChannels.keys()),
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
yield* connectionChannel.send({ ...packet, remainingHops: packet.remainingHops.slice(0, -1) })
|
|
233
|
+
}
|
|
234
|
+
return
|
|
235
|
+
}
|
|
236
|
+
|
|
173
237
|
// We have a direct connection to the target node
|
|
174
238
|
if (connectionChannels.has(packet.target)) {
|
|
175
239
|
const connectionChannel = connectionChannels.get(packet.target)!.channel
|
|
@@ -180,7 +244,7 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
180
244
|
// eslint-disable-next-line unicorn/no-negated-condition
|
|
181
245
|
else if (packet.remainingHops !== undefined) {
|
|
182
246
|
const hopTarget =
|
|
183
|
-
packet.remainingHops
|
|
247
|
+
packet.remainingHops.at(-1) ?? shouldNeverHappen(`${nodeName}: Expected remaining hops for packet`, packet)
|
|
184
248
|
const connectionChannel = connectionChannels.get(hopTarget)?.channel
|
|
185
249
|
|
|
186
250
|
if (connectionChannel === undefined) {
|
|
@@ -193,7 +257,7 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
193
257
|
|
|
194
258
|
yield* connectionChannel.send({
|
|
195
259
|
...packet,
|
|
196
|
-
remainingHops: packet.remainingHops.slice(1),
|
|
260
|
+
remainingHops: packet.remainingHops.slice(0, -1),
|
|
197
261
|
hops: [...packet.hops, nodeName],
|
|
198
262
|
})
|
|
199
263
|
}
|
|
@@ -252,50 +316,61 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
252
316
|
if (handledPacketIds.has(packet.id)) return
|
|
253
317
|
handledPacketIds.add(packet.id)
|
|
254
318
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
if (!channelMap.has(channelKey)) {
|
|
261
|
-
const queue = yield* Queue.unbounded<MessageQueueItem | ProxyQueueItem>().pipe(
|
|
262
|
-
Effect.acquireRelease(Queue.shutdown),
|
|
263
|
-
)
|
|
264
|
-
channelMap.set(channelKey, { queue, debugInfo: undefined })
|
|
265
|
-
}
|
|
319
|
+
switch (packet._tag) {
|
|
320
|
+
case 'NetworkConnectionAdded':
|
|
321
|
+
case 'NetworkConnectionTopologyRequest':
|
|
322
|
+
case 'NetworkConnectionTopologyResponse': {
|
|
323
|
+
yield* sendPacket(packet)
|
|
266
324
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const respondToSender = (outgoingPacket: typeof WebmeshSchema.Packet.Type) =>
|
|
270
|
-
connectionChannel
|
|
271
|
-
.send(outgoingPacket)
|
|
272
|
-
.pipe(
|
|
273
|
-
Effect.withSpan(
|
|
274
|
-
`respondToSender:${outgoingPacket._tag}:${outgoingPacket.source}→${outgoingPacket.target}`,
|
|
275
|
-
{ attributes: packetAsOtelAttributes(outgoingPacket) },
|
|
276
|
-
),
|
|
277
|
-
Effect.orDie,
|
|
278
|
-
)
|
|
279
|
-
|
|
280
|
-
if (Schema.is(WebmeshSchema.ProxyChannelPacket)(packet)) {
|
|
281
|
-
yield* Queue.offer(queue, { packet, respondToSender })
|
|
282
|
-
} else if (Schema.is(WebmeshSchema.MessageChannelPacket)(packet)) {
|
|
283
|
-
yield* Queue.offer(queue, { packet, respondToSender })
|
|
325
|
+
break
|
|
284
326
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
})
|
|
294
|
-
|
|
327
|
+
default: {
|
|
328
|
+
if (packet.target === nodeName) {
|
|
329
|
+
const channelKey = `target:${packet.source}, channelName:${packet.channelName}` satisfies ChannelKey
|
|
330
|
+
|
|
331
|
+
if (!channelMap.has(channelKey)) {
|
|
332
|
+
const queue = yield* Queue.unbounded<MessageQueueItem | ProxyQueueItem>().pipe(
|
|
333
|
+
Effect.acquireRelease(Queue.shutdown),
|
|
334
|
+
)
|
|
335
|
+
channelMap.set(channelKey, { queue, debugInfo: undefined })
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
const queue = channelMap.get(channelKey)!.queue
|
|
339
|
+
|
|
340
|
+
const respondToSender = (outgoingPacket: typeof WebmeshSchema.Packet.Type) =>
|
|
341
|
+
connectionChannel
|
|
342
|
+
.send(outgoingPacket)
|
|
343
|
+
.pipe(
|
|
344
|
+
Effect.withSpan(
|
|
345
|
+
`respondToSender:${outgoingPacket._tag}:${outgoingPacket.source}→${outgoingPacket.target}`,
|
|
346
|
+
{ attributes: packetAsOtelAttributes(outgoingPacket) },
|
|
347
|
+
),
|
|
348
|
+
Effect.orDie,
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
if (Schema.is(WebmeshSchema.ProxyChannelPacket)(packet)) {
|
|
352
|
+
yield* Queue.offer(queue, { packet, respondToSender })
|
|
353
|
+
} else if (Schema.is(WebmeshSchema.MessageChannelPacket)(packet)) {
|
|
354
|
+
yield* Queue.offer(queue, { packet, respondToSender })
|
|
355
|
+
}
|
|
356
|
+
} else {
|
|
357
|
+
if (Schema.is(WebmeshSchema.MessageChannelPacket)(packet)) {
|
|
358
|
+
const noTransferableResponse = checkTransferableConnections(packet)
|
|
359
|
+
if (noTransferableResponse !== undefined) {
|
|
360
|
+
yield* Effect.spanEvent(
|
|
361
|
+
`No transferable connections found for ${packet.source}→${packet.target}`,
|
|
362
|
+
)
|
|
363
|
+
return yield* connectionChannel.send(noTransferableResponse).pipe(
|
|
364
|
+
Effect.withSpan(`sendNoTransferableResponse:${packet.source}→${packet.target}`, {
|
|
365
|
+
attributes: packetAsOtelAttributes(noTransferableResponse),
|
|
366
|
+
}),
|
|
367
|
+
)
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
yield* sendPacket(packet)
|
|
295
372
|
}
|
|
296
373
|
}
|
|
297
|
-
|
|
298
|
-
yield* sendPacket(packet)
|
|
299
374
|
}
|
|
300
375
|
}),
|
|
301
376
|
),
|
|
@@ -311,7 +386,7 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
311
386
|
source: nodeName,
|
|
312
387
|
target: targetNodeName,
|
|
313
388
|
})
|
|
314
|
-
yield* sendPacket(connectionAddedPacket).pipe(Effect.
|
|
389
|
+
yield* sendPacket(connectionAddedPacket).pipe(Effect.orDie)
|
|
315
390
|
}).pipe(
|
|
316
391
|
Effect.withSpan(`addConnection:${nodeName}→${targetNodeName}`, {
|
|
317
392
|
attributes: { supportsTransferables: connectionChannel.supportsTransferables },
|
|
@@ -341,7 +416,7 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
341
416
|
}) =>
|
|
342
417
|
Effect.gen(function* () {
|
|
343
418
|
const schema = WebChannel.mapSchema(inputSchema)
|
|
344
|
-
const channelKey =
|
|
419
|
+
const channelKey = `target:${target}, channelName:${channelName}` satisfies ChannelKey
|
|
345
420
|
|
|
346
421
|
if (channelMap.has(channelKey)) {
|
|
347
422
|
const existingChannel = channelMap.get(channelKey)!.debugInfo?.channel
|
|
@@ -415,8 +490,12 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
415
490
|
|
|
416
491
|
const connectionKeys: MeshNode['connectionKeys'] = Effect.sync(() => new Set(connectionChannels.keys()))
|
|
417
492
|
|
|
493
|
+
const runtime = yield* Effect.runtime()
|
|
494
|
+
|
|
418
495
|
const debug: MeshNode['debug'] = {
|
|
419
496
|
print: () => {
|
|
497
|
+
console.log('Webmesh debug info for node:', nodeName)
|
|
498
|
+
|
|
420
499
|
console.log('Connections:', connectionChannels.size)
|
|
421
500
|
for (const [key, value] of connectionChannels) {
|
|
422
501
|
console.log(` ${key}: supportsTransferables=${value.channel.supportsTransferables}`)
|
|
@@ -444,22 +523,42 @@ export const makeMeshNode = (nodeName: MeshNodeName): Effect.Effect<MeshNode, ne
|
|
|
444
523
|
},
|
|
445
524
|
ping: (payload) => {
|
|
446
525
|
Effect.gen(function* () {
|
|
447
|
-
const msg = (via: string) =>
|
|
448
|
-
|
|
449
|
-
return WebChannel.DebugPingMessage.make({ message: `ping from ${nodeName} via ${via}`, payload })
|
|
450
|
-
}
|
|
526
|
+
const msg = (via: string) =>
|
|
527
|
+
WebChannel.DebugPingMessage.make({ message: `ping from ${nodeName} via connection ${via}`, payload })
|
|
451
528
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
529
|
+
for (const [channelName, con] of connectionChannels) {
|
|
530
|
+
yield* Effect.logDebug(`sending ping via connection ${channelName}`)
|
|
531
|
+
yield* con.channel.send(msg(`connection ${channelName}`) as any)
|
|
532
|
+
}
|
|
455
533
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
(
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
}).pipe(Effect.runFork)
|
|
534
|
+
for (const [channelKey, channel] of channelMap) {
|
|
535
|
+
if (channel.debugInfo === undefined) continue
|
|
536
|
+
yield* Effect.logDebug(`sending ping via channel ${channelKey}`)
|
|
537
|
+
yield* channel.debugInfo.channel.send(msg(`channel ${channelKey}`) as any)
|
|
538
|
+
}
|
|
539
|
+
}).pipe(Effect.provide(runtime), Effect.tapCauseLogPretty, Effect.runFork)
|
|
462
540
|
},
|
|
541
|
+
requestTopology: (timeoutMs = 1000) =>
|
|
542
|
+
Effect.gen(function* () {
|
|
543
|
+
const packet = WebmeshSchema.NetworkConnectionTopologyRequest.make({
|
|
544
|
+
source: nodeName,
|
|
545
|
+
target: '-',
|
|
546
|
+
hops: [],
|
|
547
|
+
})
|
|
548
|
+
|
|
549
|
+
const item = new Map<MeshNodeName, Set<MeshNodeName>>()
|
|
550
|
+
item.set(nodeName, new Set(connectionChannels.keys()))
|
|
551
|
+
topologyRequestsMap.set(packet.id, item)
|
|
552
|
+
|
|
553
|
+
yield* sendPacket(packet)
|
|
554
|
+
|
|
555
|
+
yield* Effect.logDebug(`Waiting ${timeoutMs}ms for topology response`)
|
|
556
|
+
yield* Effect.sleep(timeoutMs)
|
|
557
|
+
|
|
558
|
+
for (const [key, value] of item) {
|
|
559
|
+
yield* Effect.logDebug(`node '${key}' is connected to: ${Array.from(value.values()).join(', ')}`)
|
|
560
|
+
}
|
|
561
|
+
}).pipe(Effect.provide(runtime), Effect.tapCauseLogPretty, Effect.runPromise),
|
|
463
562
|
}
|
|
464
563
|
|
|
465
564
|
return { nodeName, addConnection, removeConnection, makeChannel, connectionKeys, debug } satisfies MeshNode
|