@dxos/network-manager 2.33.9-dev.d70ac9ee → 2.33.9-dev.d9963f00
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/browser-mocha/bundle.js +119253 -0
- package/dist/browser-mocha/main.js +27 -0
- package/dist/src/network-manager.d.ts.map +1 -1
- package/dist/src/network-manager.js +7 -6
- package/dist/src/network-manager.js.map +1 -1
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts +21 -0
- package/dist/src/proto/gen/dxos/mesh/signal.d.ts.map +1 -1
- package/dist/src/proto/gen/index.d.ts +1 -0
- package/dist/src/proto/gen/index.d.ts.map +1 -1
- package/dist/src/proto/gen/index.js +1 -1
- package/dist/src/proto/gen/index.js.map +1 -1
- package/dist/src/protocol-factory.js +3 -3
- package/dist/src/protocol-factory.js.map +1 -1
- package/dist/src/signal/in-memory-signal-manager.js +5 -5
- package/dist/src/signal/in-memory-signal-manager.js.map +1 -1
- package/dist/src/signal/message-router.d.ts +16 -4
- package/dist/src/signal/message-router.d.ts.map +1 -1
- package/dist/src/signal/message-router.js +91 -17
- package/dist/src/signal/message-router.js.map +1 -1
- package/dist/src/signal/message-router.test.js +120 -13
- package/dist/src/signal/message-router.test.js.map +1 -1
- package/dist/src/signal/signal-client.d.ts +2 -1
- package/dist/src/signal/signal-client.d.ts.map +1 -1
- package/dist/src/signal/signal-client.js +26 -16
- package/dist/src/signal/signal-client.js.map +1 -1
- package/dist/src/signal/signal-client.test.js +4 -2
- package/dist/src/signal/signal-client.test.js.map +1 -1
- package/dist/src/signal/websocket-rpc.js +3 -3
- package/dist/src/signal/websocket-rpc.js.map +1 -1
- package/dist/src/signal/websocket-signal-manager.js +2 -2
- package/dist/src/signal/websocket-signal-manager.js.map +1 -1
- package/dist/src/swarm/connection.js +8 -8
- package/dist/src/swarm/connection.js.map +1 -1
- package/dist/src/swarm/swarm.js +10 -10
- package/dist/src/swarm/swarm.js.map +1 -1
- package/dist/src/swarm/swarm.test.js +2 -0
- package/dist/src/swarm/swarm.test.js.map +1 -1
- package/dist/src/testing/test-protocol.d.ts.map +1 -1
- package/dist/src/testing/test-protocol.js +3 -3
- package/dist/src/testing/test-protocol.js.map +1 -1
- package/dist/src/topology/fully-connected-topology.js +3 -3
- package/dist/src/topology/fully-connected-topology.js.map +1 -1
- package/dist/src/topology/mmst-topology.js +5 -5
- package/dist/src/topology/mmst-topology.js.map +1 -1
- package/dist/src/topology/star-topology.js +4 -4
- package/dist/src/topology/star-topology.js.map +1 -1
- package/dist/src/transport/in-memory-transport.js +2 -2
- package/dist/src/transport/in-memory-transport.js.map +1 -1
- package/dist/src/transport/webrtc-transport.js +3 -3
- package/dist/src/transport/webrtc-transport.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -11
- package/src/network-manager.ts +2 -1
- package/src/proto/defs/dxos/mesh/signal.proto +13 -0
- package/src/proto/gen/dxos/mesh/signal.ts +21 -0
- package/src/proto/gen/index.ts +2 -1
- package/src/protocol-factory.ts +1 -1
- package/src/signal/in-memory-signal-manager.ts +1 -1
- package/src/signal/message-router.test.ts +154 -38
- package/src/signal/message-router.ts +107 -18
- package/src/signal/signal-client.test.ts +4 -2
- package/src/signal/signal-client.ts +42 -15
- package/src/signal/websocket-rpc.ts +1 -1
- package/src/signal/websocket-signal-manager.ts +1 -1
- package/src/swarm/connection.ts +1 -1
- package/src/swarm/swarm.test.ts +2 -0
- package/src/swarm/swarm.ts +2 -2
- package/src/testing/test-protocol.ts +1 -1
- package/src/topology/fully-connected-topology.ts +1 -1
- package/src/topology/mmst-topology.ts +1 -1
- package/src/topology/star-topology.ts +1 -1
- package/src/transport/in-memory-transport.ts +1 -1
- package/src/transport/webrtc-transport.ts +1 -1
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
import debug from 'debug';
|
|
6
6
|
|
|
7
7
|
import { Event } from '@dxos/async';
|
|
8
|
+
import { failUndefined } from '@dxos/debug';
|
|
8
9
|
import { PublicKey } from '@dxos/protocols';
|
|
9
10
|
|
|
11
|
+
import { schema } from '../proto/gen';
|
|
10
12
|
import { Answer, Message } from '../proto/gen/dxos/mesh/signal';
|
|
11
13
|
import { SignalApi } from './signal-api';
|
|
12
14
|
import { WebsocketRpc } from './websocket-rpc';
|
|
@@ -90,13 +92,17 @@ export class SignalClient {
|
|
|
90
92
|
data: message.data
|
|
91
93
|
}));
|
|
92
94
|
|
|
93
|
-
this._client.subscribe('signal', (msg:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
this._client.subscribe('signal', (msg: SignalMessage) => {
|
|
96
|
+
return this._onSignal({
|
|
97
|
+
id: PublicKey.from(msg.id!),
|
|
98
|
+
remoteId: PublicKey.from(msg.remoteId!),
|
|
99
|
+
topic: PublicKey.from(msg.topic!),
|
|
100
|
+
sessionId: PublicKey.from(msg.sessionId!),
|
|
101
|
+
data: schema.getCodecForType('dxos.mesh.signal.MessageData').decode(msg.data ?? failUndefined()),
|
|
102
|
+
// Field that MessageRouter adds, so on lower level it not always defined.
|
|
103
|
+
messageId: msg.messageId ? PublicKey.from(msg.messageId) : undefined
|
|
104
|
+
});
|
|
105
|
+
});
|
|
100
106
|
|
|
101
107
|
this._clientCleanup.push(this._client.connected.on(() => {
|
|
102
108
|
log('Socket connected');
|
|
@@ -210,6 +216,7 @@ export class SignalClient {
|
|
|
210
216
|
/**
|
|
211
217
|
* Routes an offer to the other peer's _onOffer callback.
|
|
212
218
|
* @returns Other peer's _onOffer callback return value.
|
|
219
|
+
* @deprecated
|
|
213
220
|
*/
|
|
214
221
|
async offer (msg: Message): Promise<Answer> {
|
|
215
222
|
return this._client.call('offer', {
|
|
@@ -224,13 +231,33 @@ export class SignalClient {
|
|
|
224
231
|
/**
|
|
225
232
|
* Routes an offer to the other peer's _onSignal callback.
|
|
226
233
|
*/
|
|
227
|
-
async signal (
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
234
|
+
async signal (message: Message): Promise<void> {
|
|
235
|
+
const signalMessage: SignalMessage = {
|
|
236
|
+
messageId: message.messageId?.asBuffer(),
|
|
237
|
+
id: message.id?.asBuffer(),
|
|
238
|
+
remoteId: message.remoteId?.asBuffer(),
|
|
239
|
+
topic: message.topic?.asBuffer(),
|
|
240
|
+
sessionId: message.sessionId?.asBuffer(),
|
|
241
|
+
data: Buffer.from(schema.getCodecForType('dxos.mesh.signal.MessageData').encode(message.data ?? failUndefined()))
|
|
242
|
+
};
|
|
243
|
+
return this._client.emit('signal', signalMessage);
|
|
235
244
|
}
|
|
236
245
|
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Messages as processed by the signal server.
|
|
249
|
+
*/
|
|
250
|
+
interface SignalMessage{
|
|
251
|
+
/**
|
|
252
|
+
* Sender's public key.
|
|
253
|
+
*/
|
|
254
|
+
id?: Buffer;
|
|
255
|
+
/**
|
|
256
|
+
* Receiver`s public key.
|
|
257
|
+
*/
|
|
258
|
+
remoteId?: Buffer;
|
|
259
|
+
topic?: Buffer;
|
|
260
|
+
sessionId?: Buffer;
|
|
261
|
+
data?: Buffer;
|
|
262
|
+
messageId?: Buffer;
|
|
263
|
+
}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import assert from 'assert';
|
|
6
5
|
import debug from 'debug';
|
|
7
6
|
import WebSocket from 'isomorphic-ws';
|
|
8
7
|
import nanomessagerpc from 'nanomessage-rpc';
|
|
8
|
+
import assert from 'node:assert';
|
|
9
9
|
import { promisify } from 'util';
|
|
10
10
|
|
|
11
11
|
import { Event, Trigger, sleep } from '@dxos/async';
|
package/src/swarm/connection.ts
CHANGED
package/src/swarm/swarm.test.ts
CHANGED
|
@@ -52,12 +52,14 @@ const setup = ({ router = false } = {}) => {
|
|
|
52
52
|
onSignal: msg => swarm1.onSignal(msg),
|
|
53
53
|
onOffer: msg => swarm1.onOffer(msg)
|
|
54
54
|
});
|
|
55
|
+
afterTest(() => mr1.destroy());
|
|
55
56
|
|
|
56
57
|
const mr2: MessageRouter = new MessageRouter({
|
|
57
58
|
sendMessage: msg => mr1.receiveMessage(msg),
|
|
58
59
|
onSignal: msg => swarm2.onSignal(msg),
|
|
59
60
|
onOffer: msg => swarm2.onOffer(msg)
|
|
60
61
|
});
|
|
62
|
+
afterTest(() => mr2.destroy());
|
|
61
63
|
|
|
62
64
|
const sm1: SignalMessaging = router ? mr1 : new MockSignalConnection(() => swarm2);
|
|
63
65
|
|
package/src/swarm/swarm.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import assert from 'assert';
|
|
6
5
|
import debug from 'debug';
|
|
6
|
+
import assert from 'node:assert';
|
|
7
7
|
|
|
8
8
|
import { Event } from '@dxos/async';
|
|
9
9
|
import { discoveryKey } from '@dxos/crypto';
|
|
@@ -101,7 +101,7 @@ export class Swarm {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
async onOffer (message: Message): Promise<Answer> {
|
|
104
|
-
log(`Offer from ${message
|
|
104
|
+
log(`Offer from ${JSON.stringify(message)}`);
|
|
105
105
|
// Id of the peer offering us the connection.
|
|
106
106
|
assert(message.id);
|
|
107
107
|
const remoteId = message.id;
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
// Test/mock Protocol implementation used in network-manager tests.
|
|
6
6
|
|
|
7
|
-
import assert from 'assert';
|
|
8
7
|
import debug from 'debug';
|
|
9
8
|
import { EventEmitter } from 'events';
|
|
9
|
+
import assert from 'node:assert';
|
|
10
10
|
|
|
11
11
|
import { Extension, Protocol } from '@dxos/mesh-protocol';
|
|
12
12
|
import { PublicKey } from '@dxos/protocols';
|