@dxos/messaging 0.3.0 → 0.3.1-main.0fddbd4
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/dist/lib/browser/index.mjs +119 -99
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +117 -97
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/messenger.d.ts +0 -4
- package/dist/types/src/messenger.d.ts.map +1 -1
- package/dist/types/src/signal-manager/websocket-signal-manager.d.ts +3 -0
- package/dist/types/src/signal-manager/websocket-signal-manager.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/messenger.ts +1 -34
- package/src/signal-manager/websocket-signal-manager.ts +45 -7
package/dist/lib/node/index.cjs
CHANGED
|
@@ -51,11 +51,9 @@ var import_util = require("@dxos/util");
|
|
|
51
51
|
var MESSAGE_TIMEOUT = 1e4;
|
|
52
52
|
|
|
53
53
|
// packages/core/mesh/messaging/src/messenger.ts
|
|
54
|
-
var __dxlog_file = "/
|
|
54
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/mesh/messaging/src/messenger.ts";
|
|
55
55
|
var ReliablePayload = import_protocols.schema.getCodecForType("dxos.mesh.messaging.ReliablePayload");
|
|
56
56
|
var Acknowledgement = import_protocols.schema.getCodecForType("dxos.mesh.messaging.Acknowledgement");
|
|
57
|
-
var ERROR_LIMIT = 5;
|
|
58
|
-
var NETWORK_REBOOT_DELAY = 3e3;
|
|
59
57
|
var RECEIVED_MESSAGES_GC_INTERVAL = 12e4;
|
|
60
58
|
var Messenger = class {
|
|
61
59
|
constructor({ signalManager, retryDelay = 300 }) {
|
|
@@ -70,8 +68,6 @@ var Messenger = class {
|
|
|
70
68
|
*/
|
|
71
69
|
this._toClear = new import_util.ComplexSet(import_keys.PublicKey.hash);
|
|
72
70
|
this._closed = true;
|
|
73
|
-
this._errorCount = 0;
|
|
74
|
-
this._rebooting = false;
|
|
75
71
|
this._signalManager = signalManager;
|
|
76
72
|
this._retryDelay = retryDelay;
|
|
77
73
|
this.open();
|
|
@@ -85,14 +81,14 @@ var Messenger = class {
|
|
|
85
81
|
id: traceId
|
|
86
82
|
}), {
|
|
87
83
|
F: __dxlog_file,
|
|
88
|
-
L:
|
|
84
|
+
L: 69,
|
|
89
85
|
S: this,
|
|
90
86
|
C: (f, a) => f(...a)
|
|
91
87
|
});
|
|
92
88
|
this._ctx = new import_context.Context({
|
|
93
89
|
onError: (err) => import_log.log.catch(err, void 0, {
|
|
94
90
|
F: __dxlog_file,
|
|
95
|
-
L:
|
|
91
|
+
L: 71,
|
|
96
92
|
S: this,
|
|
97
93
|
C: (f, a) => f(...a)
|
|
98
94
|
})
|
|
@@ -102,7 +98,7 @@ var Messenger = class {
|
|
|
102
98
|
from: message.author
|
|
103
99
|
}, {
|
|
104
100
|
F: __dxlog_file,
|
|
105
|
-
L:
|
|
101
|
+
L: 75,
|
|
106
102
|
S: this,
|
|
107
103
|
C: (f, a) => f(...a)
|
|
108
104
|
});
|
|
@@ -116,7 +112,7 @@ var Messenger = class {
|
|
|
116
112
|
id: traceId
|
|
117
113
|
}), {
|
|
118
114
|
F: __dxlog_file,
|
|
119
|
-
L:
|
|
115
|
+
L: 90,
|
|
120
116
|
S: this,
|
|
121
117
|
C: (f, a) => f(...a)
|
|
122
118
|
});
|
|
@@ -131,7 +127,7 @@ var Messenger = class {
|
|
|
131
127
|
async sendMessage({ author, recipient, payload }) {
|
|
132
128
|
(0, import_invariant.invariant)(!this._closed, "Closed", {
|
|
133
129
|
F: __dxlog_file,
|
|
134
|
-
L:
|
|
130
|
+
L: 102,
|
|
135
131
|
S: this,
|
|
136
132
|
A: [
|
|
137
133
|
"!this._closed",
|
|
@@ -145,7 +141,7 @@ var Messenger = class {
|
|
|
145
141
|
};
|
|
146
142
|
(0, import_invariant.invariant)(!this._onAckCallbacks.has(reliablePayload.messageId), void 0, {
|
|
147
143
|
F: __dxlog_file,
|
|
148
|
-
L:
|
|
144
|
+
L: 109,
|
|
149
145
|
S: this,
|
|
150
146
|
A: [
|
|
151
147
|
"!this._onAckCallbacks.has(reliablePayload.messageId!)",
|
|
@@ -158,7 +154,7 @@ var Messenger = class {
|
|
|
158
154
|
recipient
|
|
159
155
|
}, {
|
|
160
156
|
F: __dxlog_file,
|
|
161
|
-
L:
|
|
157
|
+
L: 110,
|
|
162
158
|
S: this,
|
|
163
159
|
C: (f, a) => f(...a)
|
|
164
160
|
});
|
|
@@ -173,7 +169,7 @@ var Messenger = class {
|
|
|
173
169
|
messageId: reliablePayload.messageId
|
|
174
170
|
}, {
|
|
175
171
|
F: __dxlog_file,
|
|
176
|
-
L:
|
|
172
|
+
L: 124,
|
|
177
173
|
S: this,
|
|
178
174
|
C: (f, a) => f(...a)
|
|
179
175
|
});
|
|
@@ -185,22 +181,21 @@ var Messenger = class {
|
|
|
185
181
|
err
|
|
186
182
|
}, {
|
|
187
183
|
F: __dxlog_file,
|
|
188
|
-
L:
|
|
184
|
+
L: 126,
|
|
189
185
|
S: this,
|
|
190
186
|
C: (f, a) => f(...a)
|
|
191
187
|
}));
|
|
192
188
|
}, this._retryDelay);
|
|
193
|
-
(0, import_async.scheduleTask)(messageContext,
|
|
189
|
+
(0, import_async.scheduleTask)(messageContext, () => {
|
|
194
190
|
(0, import_log.log)("message not delivered", {
|
|
195
191
|
messageId: reliablePayload.messageId
|
|
196
192
|
}, {
|
|
197
193
|
F: __dxlog_file,
|
|
198
|
-
L:
|
|
194
|
+
L: 135,
|
|
199
195
|
S: this,
|
|
200
196
|
C: (f, a) => f(...a)
|
|
201
197
|
});
|
|
202
198
|
this._onAckCallbacks.delete(reliablePayload.messageId);
|
|
203
|
-
await this.errorLimitCheck();
|
|
204
199
|
timeoutHit(new import_protocols.TimeoutError("signaling message not delivered", new import_async.TimeoutError(MESSAGE_TIMEOUT, "Message not delivered")));
|
|
205
200
|
void messageContext.dispose();
|
|
206
201
|
}, MESSAGE_TIMEOUT);
|
|
@@ -216,54 +211,6 @@ var Messenger = class {
|
|
|
216
211
|
});
|
|
217
212
|
return promise;
|
|
218
213
|
}
|
|
219
|
-
async errorLimitCheck() {
|
|
220
|
-
(0, import_log.log)(`checking error limit ${this._errorCount}`, void 0, {
|
|
221
|
-
F: __dxlog_file,
|
|
222
|
-
L: 165,
|
|
223
|
-
S: this,
|
|
224
|
-
C: (f, a) => f(...a)
|
|
225
|
-
});
|
|
226
|
-
if (this._errorCount++ > ERROR_LIMIT) {
|
|
227
|
-
await this.rebootNetwork();
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
async rebootNetwork() {
|
|
231
|
-
if (this._rebooting) {
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
this._rebooting = true;
|
|
235
|
-
(0, import_log.log)("rebooting Messenger/SignalManager", void 0, {
|
|
236
|
-
F: __dxlog_file,
|
|
237
|
-
L: 177,
|
|
238
|
-
S: this,
|
|
239
|
-
C: (f, a) => f(...a)
|
|
240
|
-
});
|
|
241
|
-
await this.close();
|
|
242
|
-
await this._signalManager.close();
|
|
243
|
-
(0, import_log.log)("pausing", void 0, {
|
|
244
|
-
F: __dxlog_file,
|
|
245
|
-
L: 180,
|
|
246
|
-
S: this,
|
|
247
|
-
C: (f, a) => f(...a)
|
|
248
|
-
});
|
|
249
|
-
await new Promise((resolve) => setTimeout(resolve, NETWORK_REBOOT_DELAY));
|
|
250
|
-
(0, import_log.log)("done pausing", void 0, {
|
|
251
|
-
F: __dxlog_file,
|
|
252
|
-
L: 182,
|
|
253
|
-
S: this,
|
|
254
|
-
C: (f, a) => f(...a)
|
|
255
|
-
});
|
|
256
|
-
await this.open();
|
|
257
|
-
await this._signalManager.open();
|
|
258
|
-
(0, import_log.log)("done rebooting", void 0, {
|
|
259
|
-
F: __dxlog_file,
|
|
260
|
-
L: 185,
|
|
261
|
-
S: this,
|
|
262
|
-
C: (f, a) => f(...a)
|
|
263
|
-
});
|
|
264
|
-
this._errorCount = 0;
|
|
265
|
-
this._rebooting = false;
|
|
266
|
-
}
|
|
267
214
|
/**
|
|
268
215
|
* Subscribes onMessage function to messages that contains payload with payloadType.
|
|
269
216
|
* @param payloadType if not specified, onMessage will be subscribed to all types of messages.
|
|
@@ -271,7 +218,7 @@ var Messenger = class {
|
|
|
271
218
|
async listen({ peerId, payloadType, onMessage }) {
|
|
272
219
|
(0, import_invariant.invariant)(!this._closed, "Closed", {
|
|
273
220
|
F: __dxlog_file,
|
|
274
|
-
L:
|
|
221
|
+
L: 171,
|
|
275
222
|
S: this,
|
|
276
223
|
A: [
|
|
277
224
|
"!this._closed",
|
|
@@ -335,7 +282,7 @@ var Messenger = class {
|
|
|
335
282
|
async _handleReliablePayload({ author, recipient, payload }) {
|
|
336
283
|
(0, import_invariant.invariant)(payload.type_url === "dxos.mesh.messaging.ReliablePayload", void 0, {
|
|
337
284
|
F: __dxlog_file,
|
|
338
|
-
L:
|
|
285
|
+
L: 232,
|
|
339
286
|
S: this,
|
|
340
287
|
A: [
|
|
341
288
|
"payload.type_url === 'dxos.mesh.messaging.ReliablePayload'",
|
|
@@ -349,7 +296,7 @@ var Messenger = class {
|
|
|
349
296
|
messageId: reliablePayload.messageId
|
|
350
297
|
}, {
|
|
351
298
|
F: __dxlog_file,
|
|
352
|
-
L:
|
|
299
|
+
L: 235,
|
|
353
300
|
S: this,
|
|
354
301
|
C: (f, a) => f(...a)
|
|
355
302
|
});
|
|
@@ -371,7 +318,7 @@ var Messenger = class {
|
|
|
371
318
|
async _handleAcknowledgement({ payload }) {
|
|
372
319
|
(0, import_invariant.invariant)(payload.type_url === "dxos.mesh.messaging.Acknowledgement", void 0, {
|
|
373
320
|
F: __dxlog_file,
|
|
374
|
-
L:
|
|
321
|
+
L: 257,
|
|
375
322
|
S: this,
|
|
376
323
|
A: [
|
|
377
324
|
"payload.type_url === 'dxos.mesh.messaging.Acknowledgement'",
|
|
@@ -387,7 +334,7 @@ var Messenger = class {
|
|
|
387
334
|
to: author
|
|
388
335
|
}, {
|
|
389
336
|
F: __dxlog_file,
|
|
390
|
-
L:
|
|
337
|
+
L: 270,
|
|
391
338
|
S: this,
|
|
392
339
|
C: (f, a) => f(...a)
|
|
393
340
|
});
|
|
@@ -438,7 +385,7 @@ var Messenger = class {
|
|
|
438
385
|
elapsed
|
|
439
386
|
}, {
|
|
440
387
|
F: __dxlog_file,
|
|
441
|
-
L:
|
|
388
|
+
L: 318,
|
|
442
389
|
S: this,
|
|
443
390
|
C: (f, a) => f(...a)
|
|
444
391
|
});
|
|
@@ -464,7 +411,7 @@ var import_keys2 = require("@dxos/keys");
|
|
|
464
411
|
var import_log2 = require("@dxos/log");
|
|
465
412
|
var import_protocols2 = require("@dxos/protocols");
|
|
466
413
|
var import_rpc = require("@dxos/rpc");
|
|
467
|
-
var __dxlog_file2 = "/
|
|
414
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-rpc-client.ts";
|
|
468
415
|
var SignalRPCClient = class {
|
|
469
416
|
constructor({ url, callbacks = {} }) {
|
|
470
417
|
this._connectTrigger = new import_async2.Trigger();
|
|
@@ -699,7 +646,7 @@ var SignalRPCClient = class {
|
|
|
699
646
|
};
|
|
700
647
|
|
|
701
648
|
// packages/core/mesh/messaging/src/signal-client/signal-client.ts
|
|
702
|
-
var __dxlog_file3 = "/
|
|
649
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/core/mesh/messaging/src/signal-client/signal-client.ts";
|
|
703
650
|
var DEFAULT_RECONNECT_TIMEOUT = 100;
|
|
704
651
|
var MAX_RECONNECT_TIMEOUT = 5e3;
|
|
705
652
|
var ERROR_RECONCILE_DELAY = 1e3;
|
|
@@ -1166,7 +1113,7 @@ var import_keys4 = require("@dxos/keys");
|
|
|
1166
1113
|
var import_log4 = require("@dxos/log");
|
|
1167
1114
|
var import_protocols4 = require("@dxos/protocols");
|
|
1168
1115
|
var import_util3 = require("@dxos/util");
|
|
1169
|
-
var __dxlog_file4 = "/
|
|
1116
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/memory-signal-manager.ts";
|
|
1170
1117
|
var MemorySignalManagerContext = class {
|
|
1171
1118
|
constructor() {
|
|
1172
1119
|
// Swarm messages.
|
|
@@ -1438,12 +1385,15 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
1438
1385
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1439
1386
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1440
1387
|
}
|
|
1441
|
-
var __dxlog_file5 = "/
|
|
1388
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/core/mesh/messaging/src/signal-manager/websocket-signal-manager.ts";
|
|
1389
|
+
var MAX_SERVER_FAILURES = 5;
|
|
1390
|
+
var WSS_SIGNAL_SERVER_REBOOT_DELAY = 3e3;
|
|
1442
1391
|
var WebsocketSignalManager = class {
|
|
1443
1392
|
constructor(_hosts) {
|
|
1444
1393
|
this._hosts = _hosts;
|
|
1445
1394
|
this._servers = /* @__PURE__ */ new Map();
|
|
1446
1395
|
this._opened = false;
|
|
1396
|
+
this.failureCount = /* @__PURE__ */ new Map();
|
|
1447
1397
|
this.statusChanged = new import_async5.Event();
|
|
1448
1398
|
this.commandTrace = new import_async5.Event();
|
|
1449
1399
|
this.swarmEvent = new import_async5.Event();
|
|
@@ -1453,7 +1403,7 @@ var WebsocketSignalManager = class {
|
|
|
1453
1403
|
hosts: this._hosts
|
|
1454
1404
|
}, {
|
|
1455
1405
|
F: __dxlog_file5,
|
|
1456
|
-
L:
|
|
1406
|
+
L: 46,
|
|
1457
1407
|
S: this,
|
|
1458
1408
|
C: (f, a) => f(...a)
|
|
1459
1409
|
});
|
|
@@ -1464,6 +1414,7 @@ var WebsocketSignalManager = class {
|
|
|
1464
1414
|
const server = new SignalClient(host.server, async (message) => this.onMessage.emit(message), async (data) => this.swarmEvent.emit(data));
|
|
1465
1415
|
server.statusChanged.on(() => this.statusChanged.emit(this.getStatus()));
|
|
1466
1416
|
this._servers.set(host.server, server);
|
|
1417
|
+
this.failureCount.set(host.server, 0);
|
|
1467
1418
|
server.commandTrace.on((trace5) => this.commandTrace.emit(trace5));
|
|
1468
1419
|
}
|
|
1469
1420
|
}
|
|
@@ -1475,7 +1426,7 @@ var WebsocketSignalManager = class {
|
|
|
1475
1426
|
hosts: this._hosts
|
|
1476
1427
|
}, {
|
|
1477
1428
|
F: __dxlog_file5,
|
|
1478
|
-
L:
|
|
1429
|
+
L: 69,
|
|
1479
1430
|
S: this,
|
|
1480
1431
|
C: (f, a) => f(...a)
|
|
1481
1432
|
});
|
|
@@ -1483,7 +1434,7 @@ var WebsocketSignalManager = class {
|
|
|
1483
1434
|
id: this._instanceId
|
|
1484
1435
|
}), {
|
|
1485
1436
|
F: __dxlog_file5,
|
|
1486
|
-
L:
|
|
1437
|
+
L: 70,
|
|
1487
1438
|
S: this,
|
|
1488
1439
|
C: (f, a) => f(...a)
|
|
1489
1440
|
});
|
|
@@ -1496,7 +1447,7 @@ var WebsocketSignalManager = class {
|
|
|
1496
1447
|
id: this._instanceId
|
|
1497
1448
|
}), {
|
|
1498
1449
|
F: __dxlog_file5,
|
|
1499
|
-
L:
|
|
1450
|
+
L: 77,
|
|
1500
1451
|
S: this,
|
|
1501
1452
|
C: (f, a) => f(...a)
|
|
1502
1453
|
});
|
|
@@ -1509,6 +1460,38 @@ var WebsocketSignalManager = class {
|
|
|
1509
1460
|
await this._ctx.dispose();
|
|
1510
1461
|
await Promise.all(Array.from(this._servers.values()).map((server) => server.close()));
|
|
1511
1462
|
}
|
|
1463
|
+
async restartServer(serverName) {
|
|
1464
|
+
(0, import_log5.log)("Restarting server", {
|
|
1465
|
+
serverName
|
|
1466
|
+
}, {
|
|
1467
|
+
F: __dxlog_file5,
|
|
1468
|
+
L: 93,
|
|
1469
|
+
S: this,
|
|
1470
|
+
C: (f, a) => f(...a)
|
|
1471
|
+
});
|
|
1472
|
+
(0, import_invariant5.invariant)(this._opened, "server already closed", {
|
|
1473
|
+
F: __dxlog_file5,
|
|
1474
|
+
L: 94,
|
|
1475
|
+
S: this,
|
|
1476
|
+
A: [
|
|
1477
|
+
"this._opened",
|
|
1478
|
+
"'server already closed'"
|
|
1479
|
+
]
|
|
1480
|
+
});
|
|
1481
|
+
const server = this._servers.get(serverName);
|
|
1482
|
+
(0, import_invariant5.invariant)(server, "server not found", {
|
|
1483
|
+
F: __dxlog_file5,
|
|
1484
|
+
L: 97,
|
|
1485
|
+
S: this,
|
|
1486
|
+
A: [
|
|
1487
|
+
"server",
|
|
1488
|
+
"'server not found'"
|
|
1489
|
+
]
|
|
1490
|
+
});
|
|
1491
|
+
await server.close();
|
|
1492
|
+
await (0, import_async5.sleep)(WSS_SIGNAL_SERVER_REBOOT_DELAY);
|
|
1493
|
+
await server.open();
|
|
1494
|
+
}
|
|
1512
1495
|
getStatus() {
|
|
1513
1496
|
return Array.from(this._servers.values()).map((server) => server.getStatus());
|
|
1514
1497
|
}
|
|
@@ -1518,13 +1501,13 @@ var WebsocketSignalManager = class {
|
|
|
1518
1501
|
peerId
|
|
1519
1502
|
}, {
|
|
1520
1503
|
F: __dxlog_file5,
|
|
1521
|
-
L:
|
|
1504
|
+
L: 110,
|
|
1522
1505
|
S: this,
|
|
1523
1506
|
C: (f, a) => f(...a)
|
|
1524
1507
|
});
|
|
1525
1508
|
(0, import_invariant5.invariant)(this._opened, "Closed", {
|
|
1526
1509
|
F: __dxlog_file5,
|
|
1527
|
-
L:
|
|
1510
|
+
L: 111,
|
|
1528
1511
|
S: this,
|
|
1529
1512
|
A: [
|
|
1530
1513
|
"this._opened",
|
|
@@ -1542,13 +1525,13 @@ var WebsocketSignalManager = class {
|
|
|
1542
1525
|
peerId
|
|
1543
1526
|
}, {
|
|
1544
1527
|
F: __dxlog_file5,
|
|
1545
|
-
L:
|
|
1528
|
+
L: 117,
|
|
1546
1529
|
S: this,
|
|
1547
1530
|
C: (f, a) => f(...a)
|
|
1548
1531
|
});
|
|
1549
1532
|
(0, import_invariant5.invariant)(this._opened, "Closed", {
|
|
1550
1533
|
F: __dxlog_file5,
|
|
1551
|
-
L:
|
|
1534
|
+
L: 118,
|
|
1552
1535
|
S: this,
|
|
1553
1536
|
A: [
|
|
1554
1537
|
"this._opened",
|
|
@@ -1561,44 +1544,75 @@ var WebsocketSignalManager = class {
|
|
|
1561
1544
|
}));
|
|
1562
1545
|
}
|
|
1563
1546
|
async sendMessage({ author, recipient, payload }) {
|
|
1564
|
-
(0, import_log5.log)(`Signal ${recipient}`, void 0, {
|
|
1547
|
+
(0, import_log5.log)(`Signal ${recipient.truncate()}`, void 0, {
|
|
1565
1548
|
F: __dxlog_file5,
|
|
1566
|
-
L:
|
|
1549
|
+
L: 132,
|
|
1567
1550
|
S: this,
|
|
1568
1551
|
C: (f, a) => f(...a)
|
|
1569
1552
|
});
|
|
1570
1553
|
(0, import_invariant5.invariant)(this._opened, "Closed", {
|
|
1571
1554
|
F: __dxlog_file5,
|
|
1572
|
-
L:
|
|
1555
|
+
L: 133,
|
|
1573
1556
|
S: this,
|
|
1574
1557
|
A: [
|
|
1575
1558
|
"this._opened",
|
|
1576
1559
|
"'Closed'"
|
|
1577
1560
|
]
|
|
1578
1561
|
});
|
|
1579
|
-
void this._forEachServer(async (server) => {
|
|
1562
|
+
void this._forEachServer(async (server, serverName) => {
|
|
1580
1563
|
void server.sendMessage({
|
|
1581
1564
|
author,
|
|
1582
1565
|
recipient,
|
|
1583
1566
|
payload
|
|
1584
|
-
}).catch((err) =>
|
|
1567
|
+
}).catch((err) => {
|
|
1568
|
+
if (err instanceof import_protocols5.RateLimitExceededError) {
|
|
1569
|
+
(0, import_log5.log)("WSS rate limit exceeded", {
|
|
1570
|
+
err
|
|
1571
|
+
}, {
|
|
1572
|
+
F: __dxlog_file5,
|
|
1573
|
+
L: 138,
|
|
1574
|
+
S: this,
|
|
1575
|
+
C: (f, a) => f(...a)
|
|
1576
|
+
});
|
|
1577
|
+
} else {
|
|
1578
|
+
(0, import_log5.log)(`error sending to ${serverName}`, {
|
|
1579
|
+
err
|
|
1580
|
+
}, {
|
|
1581
|
+
F: __dxlog_file5,
|
|
1582
|
+
L: 140,
|
|
1583
|
+
S: this,
|
|
1584
|
+
C: (f, a) => f(...a)
|
|
1585
|
+
});
|
|
1586
|
+
void this.checkServerFailure(serverName);
|
|
1587
|
+
}
|
|
1588
|
+
});
|
|
1589
|
+
});
|
|
1590
|
+
}
|
|
1591
|
+
async checkServerFailure(serverName) {
|
|
1592
|
+
const failureCount = this.failureCount.get(serverName) ?? 0;
|
|
1593
|
+
if (failureCount > MAX_SERVER_FAILURES) {
|
|
1594
|
+
import_log5.log.warn(`Too many failures sending to ${serverName} (${failureCount} > ${MAX_SERVER_FAILURES}), restarting`, void 0, {
|
|
1585
1595
|
F: __dxlog_file5,
|
|
1586
|
-
L:
|
|
1596
|
+
L: 151,
|
|
1587
1597
|
S: this,
|
|
1588
1598
|
C: (f, a) => f(...a)
|
|
1589
|
-
})
|
|
1590
|
-
|
|
1599
|
+
});
|
|
1600
|
+
await this.restartServer(serverName);
|
|
1601
|
+
this.failureCount.set(serverName, 0);
|
|
1602
|
+
return;
|
|
1603
|
+
}
|
|
1604
|
+
this.failureCount.set(serverName, (this.failureCount.get(serverName) ?? 0) + 1);
|
|
1591
1605
|
}
|
|
1592
1606
|
async subscribeMessages(peerId) {
|
|
1593
1607
|
(0, import_log5.log)(`Subscribed for message stream peerId=${peerId}`, void 0, {
|
|
1594
1608
|
F: __dxlog_file5,
|
|
1595
|
-
L:
|
|
1609
|
+
L: 160,
|
|
1596
1610
|
S: this,
|
|
1597
1611
|
C: (f, a) => f(...a)
|
|
1598
1612
|
});
|
|
1599
1613
|
(0, import_invariant5.invariant)(this._opened, "Closed", {
|
|
1600
1614
|
F: __dxlog_file5,
|
|
1601
|
-
L:
|
|
1615
|
+
L: 161,
|
|
1602
1616
|
S: this,
|
|
1603
1617
|
A: [
|
|
1604
1618
|
"this._opened",
|
|
@@ -1610,13 +1624,13 @@ var WebsocketSignalManager = class {
|
|
|
1610
1624
|
async unsubscribeMessages(peerId) {
|
|
1611
1625
|
(0, import_log5.log)(`Subscribed for message stream peerId=${peerId}`, void 0, {
|
|
1612
1626
|
F: __dxlog_file5,
|
|
1613
|
-
L:
|
|
1627
|
+
L: 167,
|
|
1614
1628
|
S: this,
|
|
1615
1629
|
C: (f, a) => f(...a)
|
|
1616
1630
|
});
|
|
1617
1631
|
(0, import_invariant5.invariant)(this._opened, "Closed", {
|
|
1618
1632
|
F: __dxlog_file5,
|
|
1619
|
-
L:
|
|
1633
|
+
L: 168,
|
|
1620
1634
|
S: this,
|
|
1621
1635
|
A: [
|
|
1622
1636
|
"this._opened",
|
|
@@ -1629,25 +1643,31 @@ var WebsocketSignalManager = class {
|
|
|
1629
1643
|
this._ctx = new import_context4.Context({
|
|
1630
1644
|
onError: (err) => import_log5.log.catch(err, void 0, {
|
|
1631
1645
|
F: __dxlog_file5,
|
|
1632
|
-
L:
|
|
1646
|
+
L: 175,
|
|
1633
1647
|
S: this,
|
|
1634
1648
|
C: (f, a) => f(...a)
|
|
1635
1649
|
})
|
|
1636
1650
|
});
|
|
1637
1651
|
}
|
|
1638
1652
|
async _forEachServer(fn) {
|
|
1639
|
-
return Promise.all(Array.from(this._servers.
|
|
1653
|
+
return Promise.all(Array.from(this._servers.entries()).map(([serverName, server]) => fn(server, serverName)));
|
|
1640
1654
|
}
|
|
1641
1655
|
};
|
|
1642
1656
|
_ts_decorate([
|
|
1643
1657
|
import_async5.synchronized
|
|
1644
1658
|
], WebsocketSignalManager.prototype, "open", null);
|
|
1659
|
+
_ts_decorate([
|
|
1660
|
+
import_async5.synchronized
|
|
1661
|
+
], WebsocketSignalManager.prototype, "close", null);
|
|
1645
1662
|
_ts_decorate([
|
|
1646
1663
|
import_async5.synchronized
|
|
1647
1664
|
], WebsocketSignalManager.prototype, "join", null);
|
|
1648
1665
|
_ts_decorate([
|
|
1649
1666
|
import_async5.synchronized
|
|
1650
1667
|
], WebsocketSignalManager.prototype, "leave", null);
|
|
1668
|
+
_ts_decorate([
|
|
1669
|
+
import_async5.synchronized
|
|
1670
|
+
], WebsocketSignalManager.prototype, "checkServerFailure", null);
|
|
1651
1671
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1652
1672
|
0 && (module.exports = {
|
|
1653
1673
|
MemorySignalManager,
|