@streamr/dht 100.2.5-beta.0 → 101.0.0-beta.0
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/package.json +7 -7
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
- package/dist/src/connection/ConnectionLockRpcLocal.js +8 -8
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +4 -6
- package/dist/src/connection/ConnectionManager.js +128 -103
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +15 -14
- package/dist/src/connection/ConnectorFacade.js +70 -52
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/Handshaker.d.ts +9 -2
- package/dist/src/connection/Handshaker.js +117 -27
- package/dist/src/connection/Handshaker.js.map +1 -1
- package/dist/src/connection/ManagedConnection.d.ts +13 -38
- package/dist/src/connection/ManagedConnection.js +31 -252
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/OutputBuffer.d.ts +9 -0
- package/dist/src/connection/OutputBuffer.js +26 -0
- package/dist/src/connection/OutputBuffer.js.map +1 -0
- package/dist/src/connection/PendingConnection.d.ts +19 -0
- package/dist/src/connection/PendingConnection.js +59 -0
- package/dist/src/connection/PendingConnection.js.map +1 -0
- package/dist/src/connection/connectivityChecker.js +3 -3
- package/dist/src/connection/connectivityChecker.js.map +1 -1
- package/dist/src/connection/connectivityRequestHandler.js +2 -2
- package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
- package/dist/src/connection/simulator/Simulator.d.ts +1 -3
- package/dist/src/connection/simulator/Simulator.js +1 -4
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnection.js +1 -2
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.d.ts +3 -3
- package/dist/src/connection/simulator/SimulatorConnector.js +28 -21
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -6
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +3 -20
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +11 -6
- package/dist/src/connection/webrtc/WebrtcConnector.js +57 -42
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +8 -10
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +21 -44
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +8 -2
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +3 -3
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +8 -8
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +1 -1
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +26 -0
- package/dist/src/connection/websocket/WebsocketClientConnector.js +86 -0
- package/dist/src/connection/websocket/WebsocketClientConnector.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +19 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +23 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +5 -0
- package/dist/src/connection/websocket/{WebsocketConnectorRpcRemote.js → WebsocketClientConnectorRpcRemote.js} +4 -4
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketServer.d.ts +8 -5
- package/dist/src/connection/websocket/WebsocketServer.js +11 -11
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
- package/dist/src/connection/websocket/{WebsocketConnector.d.ts → WebsocketServerConnector.d.ts} +16 -21
- package/dist/src/connection/websocket/{WebsocketConnector.js → WebsocketServerConnector.js} +112 -160
- package/dist/src/connection/websocket/WebsocketServerConnector.js.map +1 -0
- package/dist/src/dht/DhtNode.d.ts +4 -4
- package/dist/src/dht/DhtNode.js +85 -84
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +3 -3
- package/dist/src/dht/DhtNodeRpcLocal.js +9 -9
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +3 -3
- package/dist/src/dht/ExternalApiRpcLocal.js +5 -5
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +4 -4
- package/dist/src/dht/PeerManager.js +22 -22
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +3 -3
- package/dist/src/dht/contact/SortedContactList.js +9 -9
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +3 -3
- package/dist/src/dht/discovery/DiscoverySession.js +21 -21
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +3 -3
- package/dist/src/dht/discovery/PeerDiscovery.js +46 -44
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/discovery/RingDiscoverySession.d.ts +3 -3
- package/dist/src/dht/discovery/RingDiscoverySession.js +19 -19
- package/dist/src/dht/discovery/RingDiscoverySession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +3 -3
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +33 -33
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +3 -3
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +8 -8
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +4 -4
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +24 -24
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -4
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -5
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/Router.d.ts +3 -3
- package/dist/src/dht/routing/Router.js +20 -20
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.d.ts +3 -3
- package/dist/src/dht/routing/RouterRpcLocal.js +16 -16
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +3 -3
- package/dist/src/dht/routing/RoutingSession.js +24 -24
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/StoreManager.d.ts +3 -3
- package/dist/src/dht/store/StoreManager.js +25 -25
- package/dist/src/dht/store/StoreManager.js.map +1 -1
- package/dist/src/dht/store/StoreRpcLocal.d.ts +3 -3
- package/dist/src/dht/store/StoreRpcLocal.js +12 -12
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/exports.d.ts +3 -0
- package/dist/src/exports.js +5 -1
- package/dist/src/exports.js.map +1 -1
- package/dist/src/proto/google/protobuf/any.d.ts +5 -8
- package/dist/src/proto/google/protobuf/any.js.map +1 -1
- package/dist/src/proto/google/protobuf/empty.d.ts +1 -0
- package/dist/src/proto/google/protobuf/empty.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.d.ts +1 -10
- package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -4
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +8 -8
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +3 -3
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +4 -4
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -2
- package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
- package/dist/src/transport/ListeningRpcCommunicator.d.ts +2 -2
- package/dist/src/transport/ListeningRpcCommunicator.js +2 -2
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -2
- package/dist/src/transport/RoutingRpcCommunicator.js +2 -2
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/package.json +7 -7
- package/protos/DhtRpc.proto +1 -1
- package/src/connection/ConnectionLockRpcLocal.ts +9 -9
- package/src/connection/ConnectionLockRpcRemote.ts +1 -1
- package/src/connection/ConnectionManager.ts +153 -111
- package/src/connection/ConnectorFacade.ts +84 -61
- package/src/connection/Handshaker.ts +131 -27
- package/src/connection/ManagedConnection.ts +41 -304
- package/src/connection/OutputBuffer.ts +28 -0
- package/src/connection/PendingConnection.ts +68 -0
- package/src/connection/connectivityChecker.ts +2 -2
- package/src/connection/connectivityRequestHandler.ts +1 -1
- package/src/connection/simulator/Simulator.ts +1 -5
- package/src/connection/simulator/SimulatorConnection.ts +1 -2
- package/src/connection/simulator/SimulatorConnector.ts +34 -33
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -6
- package/src/connection/webrtc/NodeWebrtcConnection.ts +3 -24
- package/src/connection/webrtc/WebrtcConnector.ts +73 -62
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +26 -56
- package/src/connection/websocket/AbstractWebsocketClientConnection.ts +8 -2
- package/src/connection/websocket/AutoCertifierClientFacade.ts +11 -11
- package/src/connection/websocket/NodeWebsocketClientConnection.ts +1 -1
- package/src/connection/websocket/WebsocketClientConnector.ts +119 -0
- package/src/connection/websocket/WebsocketClientConnectorRpcLocal.ts +39 -0
- package/src/connection/websocket/{WebsocketConnectorRpcRemote.ts → WebsocketClientConnectorRpcRemote.ts} +2 -2
- package/src/connection/websocket/WebsocketServer.ts +18 -14
- package/src/connection/websocket/{WebsocketConnector.ts → WebsocketServerConnector.ts} +128 -205
- package/src/dht/DhtNode.ts +90 -89
- package/src/dht/DhtNodeRpcLocal.ts +11 -11
- package/src/dht/ExternalApiRpcLocal.ts +6 -6
- package/src/dht/ExternalApiRpcRemote.ts +2 -2
- package/src/dht/PeerManager.ts +24 -24
- package/src/dht/contact/SortedContactList.ts +10 -10
- package/src/dht/discovery/DiscoverySession.ts +24 -24
- package/src/dht/discovery/PeerDiscovery.ts +47 -45
- package/src/dht/discovery/RingDiscoverySession.ts +23 -23
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +36 -36
- package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +9 -9
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +25 -25
- package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +7 -7
- package/src/dht/routing/Router.ts +21 -21
- package/src/dht/routing/RouterRpcLocal.ts +17 -17
- package/src/dht/routing/RoutingSession.ts +26 -26
- package/src/dht/store/StoreManager.ts +27 -27
- package/src/dht/store/StoreRpcLocal.ts +13 -13
- package/src/exports.ts +3 -0
- package/src/proto/google/protobuf/any.ts +6 -9
- package/src/proto/google/protobuf/empty.ts +2 -1
- package/src/proto/google/protobuf/timestamp.ts +2 -11
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +9 -9
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -3
- package/src/proto/packages/dht/protos/DhtRpc.ts +4 -4
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/transport/ListeningRpcCommunicator.ts +3 -3
- package/src/transport/RoutingRpcCommunicator.ts +3 -3
- package/test/end-to-end/Layer0Webrtc.test.ts +0 -10
- package/test/integration/ConnectionManager.test.ts +3 -2
- package/test/integration/GeoIpConnectivityChecking.test.ts +1 -1
- package/test/integration/SimultaneousConnections.test.ts +2 -2
- package/test/integration/WebrtcConnectionManagement.test.ts +2 -10
- package/test/integration/{WebsocketConnectorRpc.test.ts → WebsocketClientConnectorRpc.test.ts} +9 -9
- package/test/integration/WebsocketConnectionManagement.test.ts +11 -29
- package/test/unit/ConnectionManager.test.ts +64 -0
- package/test/unit/DiscoverySession.test.ts +1 -1
- package/test/unit/Handshaker.test.ts +169 -0
- package/test/unit/ManagedConnection.test.ts +58 -0
- package/test/unit/PendingConnection.test.ts +57 -0
- package/test/unit/WebrtcConnector.test.ts +56 -0
- package/test/unit/{WebsocketConnector.test.ts → WebsocketClientConnector.test.ts} +56 -11
- package/test/unit/WebsocketServerConnector.test.ts +102 -0
- package/test/utils/FakeConnectorFacade.ts +41 -0
- package/test/utils/mock/MockConnection.ts +26 -0
- package/test/utils/utils.ts +2 -2
- package/dist/src/connection/IConnectionSource.d.ts +0 -4
- package/dist/src/connection/IConnectionSource.js +0 -3
- package/dist/src/connection/IConnectionSource.js.map +0 -1
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.d.ts +0 -7
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.js +0 -20
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnector.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +0 -19
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +0 -23
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +0 -5
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +0 -1
- package/src/connection/IConnectionSource.ts +0 -6
- package/src/connection/webrtc/ManagedWebrtcConnection.ts +0 -27
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../src/connection/ConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../src/connection/ConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { ConnectivityResponse, PeerDescriptor } from '../proto/packages/dht/protos/DhtRpc';
|
|
2
2
|
import { ITransport } from '../transport/ITransport';
|
|
3
3
|
import { PortRange, TlsCertificate } from './ConnectionManager';
|
|
4
|
-
import { ManagedConnection } from './ManagedConnection';
|
|
5
4
|
import { Simulator } from './simulator/Simulator';
|
|
6
5
|
import { IceServer } from './webrtc/WebrtcConnector';
|
|
7
|
-
import { WebsocketConnectorConfig } from './websocket/WebsocketConnector';
|
|
8
6
|
import { DhtAddress } from '../identifiers';
|
|
7
|
+
import { WebsocketServerConnectorOptions } from './websocket/WebsocketServerConnector';
|
|
8
|
+
import { PendingConnection } from './PendingConnection';
|
|
9
9
|
export interface ConnectorFacade {
|
|
10
|
-
createConnection: (peerDescriptor: PeerDescriptor) =>
|
|
10
|
+
createConnection: (peerDescriptor: PeerDescriptor) => PendingConnection;
|
|
11
11
|
getLocalPeerDescriptor: () => PeerDescriptor | undefined;
|
|
12
|
-
start: (onNewConnection: (connection:
|
|
12
|
+
start: (onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport) => Promise<void>;
|
|
13
13
|
stop: () => Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
export interface
|
|
15
|
+
export interface DefaultConnectorFacadeOptions {
|
|
16
16
|
transport: ITransport;
|
|
17
17
|
websocketHost?: string;
|
|
18
18
|
websocketPortRange?: PortRange;
|
|
@@ -21,7 +21,6 @@ export interface DefaultConnectorFacadeConfig {
|
|
|
21
21
|
webrtcAllowPrivateAddresses?: boolean;
|
|
22
22
|
webrtcDatachannelBufferThresholdLow?: number;
|
|
23
23
|
webrtcDatachannelBufferThresholdHigh?: number;
|
|
24
|
-
webrtcNewConnectionTimeout?: number;
|
|
25
24
|
externalIp?: string;
|
|
26
25
|
webrtcPortRange?: PortRange;
|
|
27
26
|
maxMessageSize?: number;
|
|
@@ -33,15 +32,17 @@ export interface DefaultConnectorFacadeConfig {
|
|
|
33
32
|
createLocalPeerDescriptor: (connectivityResponse: ConnectivityResponse) => Promise<PeerDescriptor>;
|
|
34
33
|
}
|
|
35
34
|
export declare class DefaultConnectorFacade implements ConnectorFacade {
|
|
36
|
-
private readonly
|
|
35
|
+
private readonly options;
|
|
37
36
|
private localPeerDescriptor?;
|
|
38
|
-
private
|
|
37
|
+
private websocketConnectorRpcCommunicator?;
|
|
38
|
+
private websocketClientConnector?;
|
|
39
|
+
private websocketServerConnector?;
|
|
39
40
|
private webrtcConnector?;
|
|
40
|
-
constructor(
|
|
41
|
-
start(onNewConnection: (connection:
|
|
41
|
+
constructor(options: DefaultConnectorFacadeOptions);
|
|
42
|
+
start(onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport): Promise<void>;
|
|
42
43
|
private setLocalPeerDescriptor;
|
|
43
|
-
|
|
44
|
-
createConnection(peerDescriptor: PeerDescriptor):
|
|
44
|
+
restartWebsocketServerConnector(options: WebsocketServerConnectorOptions): Promise<void>;
|
|
45
|
+
createConnection(peerDescriptor: PeerDescriptor): PendingConnection;
|
|
45
46
|
getLocalPeerDescriptor(): PeerDescriptor | undefined;
|
|
46
47
|
stop(): Promise<void>;
|
|
47
48
|
}
|
|
@@ -50,8 +51,8 @@ export declare class SimulatorConnectorFacade implements ConnectorFacade {
|
|
|
50
51
|
private simulatorConnector?;
|
|
51
52
|
private simulator;
|
|
52
53
|
constructor(localPeerDescriptor: PeerDescriptor, simulator: Simulator);
|
|
53
|
-
start(onNewConnection: (connection:
|
|
54
|
-
createConnection(peerDescriptor: PeerDescriptor):
|
|
54
|
+
start(onNewConnection: (connection: PendingConnection) => boolean): Promise<void>;
|
|
55
|
+
createConnection(peerDescriptor: PeerDescriptor): PendingConnection;
|
|
55
56
|
getLocalPeerDescriptor(): PeerDescriptor;
|
|
56
57
|
stop(): Promise<void>;
|
|
57
58
|
}
|
|
@@ -4,76 +4,88 @@ exports.SimulatorConnectorFacade = exports.DefaultConnectorFacade = void 0;
|
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const SimulatorConnector_1 = require("./simulator/SimulatorConnector");
|
|
6
6
|
const WebrtcConnector_1 = require("./webrtc/WebrtcConnector");
|
|
7
|
-
const
|
|
7
|
+
const WebsocketClientConnector_1 = require("./websocket/WebsocketClientConnector");
|
|
8
|
+
const WebsocketServerConnector_1 = require("./websocket/WebsocketServerConnector");
|
|
9
|
+
const ListeningRpcCommunicator_1 = require("../transport/ListeningRpcCommunicator");
|
|
8
10
|
const logger = new utils_1.Logger(module);
|
|
9
11
|
class DefaultConnectorFacade {
|
|
10
|
-
|
|
12
|
+
options;
|
|
11
13
|
localPeerDescriptor;
|
|
12
|
-
|
|
14
|
+
websocketConnectorRpcCommunicator;
|
|
15
|
+
websocketClientConnector;
|
|
16
|
+
websocketServerConnector;
|
|
13
17
|
webrtcConnector;
|
|
14
|
-
constructor(
|
|
15
|
-
this.
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.options = options;
|
|
16
20
|
}
|
|
17
21
|
async start(onNewConnection, hasConnection, autoCertifierTransport) {
|
|
18
22
|
logger.trace(`Creating WebsocketConnectorRpcLocal`);
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
this.websocketConnectorRpcCommunicator = new ListeningRpcCommunicator_1.ListeningRpcCommunicator(WebsocketClientConnector_1.WebsocketClientConnector.WEBSOCKET_CONNECTOR_SERVICE_ID, this.options.transport, { rpcRequestTimeout: 15000 } // TODO use options option or named constant?
|
|
24
|
+
);
|
|
25
|
+
const webSocketClientConnectorOptions = {
|
|
21
26
|
// TODO should we use canConnect also for WebrtcConnector? (NET-1142)
|
|
22
27
|
onNewConnection,
|
|
23
28
|
hasConnection,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
rpcCommunicator: this.websocketConnectorRpcCommunicator
|
|
30
|
+
};
|
|
31
|
+
this.websocketClientConnector = new WebsocketClientConnector_1.WebsocketClientConnector(webSocketClientConnectorOptions);
|
|
32
|
+
const webSocketServerConnectorOptions = {
|
|
33
|
+
rpcCommunicator: this.websocketConnectorRpcCommunicator,
|
|
34
|
+
// TODO should we use canConnect also for WebrtcConnector? (NET-1142)
|
|
35
|
+
onNewConnection,
|
|
36
|
+
hasConnection,
|
|
37
|
+
portRange: this.options.websocketPortRange,
|
|
38
|
+
host: this.options.websocketHost,
|
|
39
|
+
entrypoints: this.options.entryPoints,
|
|
40
|
+
tlsCertificate: this.options.tlsCertificate,
|
|
41
|
+
serverEnableTls: this.options.websocketServerEnableTls,
|
|
42
|
+
autoCertifierUrl: this.options.autoCertifierUrl,
|
|
43
|
+
autoCertifierConfigFile: this.options.autoCertifierConfigFile,
|
|
31
44
|
autoCertifierTransport,
|
|
32
|
-
maxMessageSize: this.
|
|
33
|
-
geoIpDatabaseFolder: this.
|
|
45
|
+
maxMessageSize: this.options.maxMessageSize,
|
|
46
|
+
geoIpDatabaseFolder: this.options.geoIpDatabaseFolder
|
|
34
47
|
};
|
|
35
|
-
this.
|
|
36
|
-
logger.trace(`Creating WebRtcConnectorRpcLocal`);
|
|
48
|
+
this.websocketServerConnector = new WebsocketServerConnector_1.WebsocketServerConnector(webSocketServerConnectorOptions);
|
|
37
49
|
this.webrtcConnector = new WebrtcConnector_1.WebrtcConnector({
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
externalIp: this.
|
|
45
|
-
portRange: this.
|
|
46
|
-
maxMessageSize: this.
|
|
47
|
-
}
|
|
48
|
-
await this.
|
|
50
|
+
onNewConnection,
|
|
51
|
+
transport: this.options.transport,
|
|
52
|
+
iceServers: this.options.iceServers,
|
|
53
|
+
allowPrivateAddresses: this.options.webrtcAllowPrivateAddresses,
|
|
54
|
+
bufferThresholdLow: this.options.webrtcDatachannelBufferThresholdLow,
|
|
55
|
+
bufferThresholdHigh: this.options.webrtcDatachannelBufferThresholdHigh,
|
|
56
|
+
externalIp: this.options.externalIp,
|
|
57
|
+
portRange: this.options.webrtcPortRange,
|
|
58
|
+
maxMessageSize: this.options.maxMessageSize
|
|
59
|
+
});
|
|
60
|
+
await this.websocketServerConnector.start();
|
|
49
61
|
// TODO: generate a PeerDescriptor in a single function. Requires changes to the createOwnPeerDescriptor
|
|
50
|
-
// function in the
|
|
62
|
+
// function in the options. Currently it's given by the DhtNode and it sets the PeerDescriptor for the
|
|
51
63
|
// DhtNode in each call.
|
|
52
64
|
// LocalPeerDescriptor could be stored in one place and passed from there to the connectors
|
|
53
|
-
const temporarilySelfSigned = (!this.
|
|
54
|
-
const connectivityResponse = await this.
|
|
55
|
-
const localPeerDescriptor = await this.
|
|
65
|
+
const temporarilySelfSigned = (!this.options.tlsCertificate && this.options.websocketServerEnableTls === true);
|
|
66
|
+
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(temporarilySelfSigned);
|
|
67
|
+
const localPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
56
68
|
this.setLocalPeerDescriptor(localPeerDescriptor);
|
|
57
|
-
if (localPeerDescriptor.websocket && !this.
|
|
69
|
+
if (localPeerDescriptor.websocket && !this.options.tlsCertificate && this.options.websocketServerEnableTls) {
|
|
58
70
|
try {
|
|
59
|
-
await this.
|
|
60
|
-
const connectivityResponse = await this.
|
|
61
|
-
const autocertifiedLocalPeerDescriptor = await this.
|
|
71
|
+
await this.websocketServerConnector.autoCertify();
|
|
72
|
+
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(false);
|
|
73
|
+
const autocertifiedLocalPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
62
74
|
if (autocertifiedLocalPeerDescriptor.websocket !== undefined) {
|
|
63
75
|
this.setLocalPeerDescriptor(autocertifiedLocalPeerDescriptor);
|
|
64
76
|
}
|
|
65
77
|
else {
|
|
66
78
|
logger.warn('Connectivity check failed after auto-certification, disabling WebSocket server TLS');
|
|
67
|
-
await this.
|
|
68
|
-
...
|
|
79
|
+
await this.restartWebsocketServerConnector({
|
|
80
|
+
...webSocketServerConnectorOptions,
|
|
69
81
|
serverEnableTls: false
|
|
70
82
|
});
|
|
71
83
|
}
|
|
72
84
|
}
|
|
73
85
|
catch (err) {
|
|
74
86
|
logger.warn('Failed to auto-certify, disabling WebSocket server TLS', { err });
|
|
75
|
-
await this.
|
|
76
|
-
...
|
|
87
|
+
await this.restartWebsocketServerConnector({
|
|
88
|
+
...webSocketServerConnectorOptions,
|
|
77
89
|
serverEnableTls: false
|
|
78
90
|
});
|
|
79
91
|
}
|
|
@@ -81,30 +93,36 @@ class DefaultConnectorFacade {
|
|
|
81
93
|
}
|
|
82
94
|
setLocalPeerDescriptor(peerDescriptor) {
|
|
83
95
|
this.localPeerDescriptor = peerDescriptor;
|
|
84
|
-
this.
|
|
96
|
+
this.websocketServerConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
97
|
+
this.websocketClientConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
85
98
|
this.webrtcConnector.setLocalPeerDescriptor(peerDescriptor);
|
|
86
99
|
}
|
|
87
|
-
async
|
|
88
|
-
await this.
|
|
89
|
-
this.
|
|
90
|
-
await this.
|
|
91
|
-
const connectivityResponse = await this.
|
|
92
|
-
const localPeerDescriptor = await this.
|
|
100
|
+
async restartWebsocketServerConnector(options) {
|
|
101
|
+
await this.websocketServerConnector.destroy();
|
|
102
|
+
this.websocketServerConnector = new WebsocketServerConnector_1.WebsocketServerConnector(options);
|
|
103
|
+
await this.websocketServerConnector.start();
|
|
104
|
+
const connectivityResponse = await this.websocketServerConnector.checkConnectivity(false);
|
|
105
|
+
const localPeerDescriptor = await this.options.createLocalPeerDescriptor(connectivityResponse);
|
|
93
106
|
this.setLocalPeerDescriptor(localPeerDescriptor);
|
|
94
107
|
}
|
|
95
108
|
createConnection(peerDescriptor) {
|
|
96
|
-
if (this.
|
|
97
|
-
return this.
|
|
109
|
+
if (this.websocketClientConnector.isPossibleToFormConnection(peerDescriptor)) {
|
|
110
|
+
return this.websocketClientConnector.connect(peerDescriptor);
|
|
111
|
+
}
|
|
112
|
+
else if (this.websocketServerConnector.isPossibleToFormConnection(peerDescriptor)) {
|
|
113
|
+
return this.websocketServerConnector.connect(peerDescriptor);
|
|
98
114
|
}
|
|
99
115
|
else {
|
|
100
|
-
return this.webrtcConnector.connect(peerDescriptor);
|
|
116
|
+
return this.webrtcConnector.connect(peerDescriptor, false);
|
|
101
117
|
}
|
|
102
118
|
}
|
|
103
119
|
getLocalPeerDescriptor() {
|
|
104
120
|
return this.localPeerDescriptor;
|
|
105
121
|
}
|
|
106
122
|
async stop() {
|
|
107
|
-
|
|
123
|
+
this.websocketConnectorRpcCommunicator.destroy();
|
|
124
|
+
await this.websocketServerConnector.destroy();
|
|
125
|
+
await this.websocketClientConnector.destroy();
|
|
108
126
|
await this.webrtcConnector.stop();
|
|
109
127
|
}
|
|
110
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectorFacade.js","sourceRoot":"","sources":["../../../src/connection/ConnectorFacade.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;
|
|
1
|
+
{"version":3,"file":"ConnectorFacade.js","sourceRoot":"","sources":["../../../src/connection/ConnectorFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { PeerDescriptor, HandshakeError } from '../proto/packages/dht/protos/DhtRpc';
|
|
2
|
+
import { Message, PeerDescriptor, HandshakeError } from '../proto/packages/dht/protos/DhtRpc';
|
|
3
3
|
import { IConnection } from './IConnection';
|
|
4
|
+
import { PendingConnection } from './PendingConnection';
|
|
4
5
|
interface HandshakerEvents {
|
|
5
6
|
handshakeRequest: (source: PeerDescriptor, version: string, target?: PeerDescriptor) => void;
|
|
6
7
|
handshakeCompleted: (remote: PeerDescriptor) => void;
|
|
7
8
|
handshakeFailed: (error?: HandshakeError) => void;
|
|
8
9
|
}
|
|
10
|
+
export declare const createOutgoingHandshaker: (localPeerDescriptor: PeerDescriptor, pendingConnection: PendingConnection, connection: IConnection, targetPeerDescriptor?: PeerDescriptor) => Handshaker;
|
|
11
|
+
export declare const createIncomingHandshaker: (localPeerDescriptor: PeerDescriptor, pendingConnection: PendingConnection, connection: IConnection) => Handshaker;
|
|
12
|
+
export declare const rejectHandshake: (pendingConnection: PendingConnection, connection: IConnection, handshaker: Handshaker, error: HandshakeError) => void;
|
|
13
|
+
export declare const acceptHandshake: (handshaker: Handshaker, pendingConnection: PendingConnection, connection: IConnection) => void;
|
|
14
|
+
export declare const createHandshakeRequest: (localPeerDescriptor: PeerDescriptor, remotePeerDescriptor: PeerDescriptor) => Message;
|
|
15
|
+
export declare const createHandshakeResponse: (localPeerDescriptor: PeerDescriptor, error?: HandshakeError) => Message;
|
|
9
16
|
export declare class Handshaker extends EventEmitter<HandshakerEvents> {
|
|
10
|
-
|
|
17
|
+
static readonly HANDSHAKER_SERVICE_ID = "system/handshaker";
|
|
11
18
|
private localPeerDescriptor;
|
|
12
19
|
private connection;
|
|
13
20
|
private readonly onDataListener;
|
|
@@ -1,12 +1,125 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Handshaker = void 0;
|
|
3
|
+
exports.Handshaker = exports.createHandshakeResponse = exports.createHandshakeRequest = exports.acceptHandshake = exports.rejectHandshake = exports.createIncomingHandshaker = exports.createOutgoingHandshaker = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const eventemitter3_1 = require("eventemitter3");
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
7
|
const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
|
|
8
8
|
const version_1 = require("../helpers/version");
|
|
9
|
+
const identifiers_1 = require("../identifiers");
|
|
9
10
|
const logger = new utils_1.Logger(module);
|
|
11
|
+
// Optimally the Outgoing and Incoming Handshakers could be their own separate classes
|
|
12
|
+
// However, in cases where the PeerDescriptor of the other end of the connection can be known
|
|
13
|
+
// only after a HandshakeRequest a base Handshaker class is needed as the IncomingHandshaker currently
|
|
14
|
+
// requires knowledge of the other ends PeerDescriptor. (Note PendingConnection requires the remote PeerDescriptor)
|
|
15
|
+
const createOutgoingHandshaker = (localPeerDescriptor, pendingConnection, connection, targetPeerDescriptor) => {
|
|
16
|
+
const handshaker = new Handshaker(localPeerDescriptor, connection);
|
|
17
|
+
const stopHandshaker = () => {
|
|
18
|
+
handshaker.stop();
|
|
19
|
+
connection.off('disconnected', disconnectedListener);
|
|
20
|
+
connection.off('connected', connectedListener);
|
|
21
|
+
handshaker.off('handshakeCompleted', handshakeCompletedListener);
|
|
22
|
+
handshaker.off('handshakeFailed', handshakeFailedListener);
|
|
23
|
+
pendingConnection.off('disconnected', managedConnectionDisconnectedListener);
|
|
24
|
+
};
|
|
25
|
+
const handshakeFailedListener = (error) => {
|
|
26
|
+
if (error === DhtRpc_1.HandshakeError.INVALID_TARGET_PEER_DESCRIPTOR || error === DhtRpc_1.HandshakeError.UNSUPPORTED_VERSION) {
|
|
27
|
+
pendingConnection.close(false);
|
|
28
|
+
stopHandshaker();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Wait for the other end to close the connection
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const handshakeCompletedListener = (peerDescriptor) => {
|
|
35
|
+
logger.trace('handshake completed for outgoing connection, ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
|
|
36
|
+
pendingConnection.onHandshakeCompleted(connection);
|
|
37
|
+
stopHandshaker();
|
|
38
|
+
};
|
|
39
|
+
const connectedListener = () => handshaker.sendHandshakeRequest(targetPeerDescriptor);
|
|
40
|
+
const disconnectedListener = (graceful) => {
|
|
41
|
+
pendingConnection.close(graceful);
|
|
42
|
+
stopHandshaker();
|
|
43
|
+
};
|
|
44
|
+
const managedConnectionDisconnectedListener = () => {
|
|
45
|
+
connection.close(false);
|
|
46
|
+
stopHandshaker();
|
|
47
|
+
};
|
|
48
|
+
handshaker.once('handshakeFailed', handshakeFailedListener);
|
|
49
|
+
handshaker.once('handshakeCompleted', handshakeCompletedListener);
|
|
50
|
+
connection.once('connected', connectedListener);
|
|
51
|
+
connection.once('disconnected', disconnectedListener);
|
|
52
|
+
pendingConnection.once('disconnected', managedConnectionDisconnectedListener);
|
|
53
|
+
return handshaker;
|
|
54
|
+
};
|
|
55
|
+
exports.createOutgoingHandshaker = createOutgoingHandshaker;
|
|
56
|
+
const createIncomingHandshaker = (localPeerDescriptor, pendingConnection, connection) => {
|
|
57
|
+
const handshaker = new Handshaker(localPeerDescriptor, connection);
|
|
58
|
+
const stopHandshaker = () => {
|
|
59
|
+
handshaker.stop();
|
|
60
|
+
pendingConnection.off('disconnected', connectionDisconnected);
|
|
61
|
+
connection.off('disconnected', connectionDisconnected);
|
|
62
|
+
};
|
|
63
|
+
const onHandshakeRequest = () => {
|
|
64
|
+
stopHandshaker();
|
|
65
|
+
};
|
|
66
|
+
const connectionDisconnected = (graceful) => {
|
|
67
|
+
pendingConnection.close(graceful);
|
|
68
|
+
stopHandshaker();
|
|
69
|
+
};
|
|
70
|
+
const managedConnectionDisconnected = () => {
|
|
71
|
+
connection.close(false);
|
|
72
|
+
stopHandshaker();
|
|
73
|
+
};
|
|
74
|
+
handshaker.on('handshakeRequest', onHandshakeRequest);
|
|
75
|
+
connection.once('disconnected', connectionDisconnected);
|
|
76
|
+
pendingConnection.once('disconnected', managedConnectionDisconnected);
|
|
77
|
+
return handshaker;
|
|
78
|
+
};
|
|
79
|
+
exports.createIncomingHandshaker = createIncomingHandshaker;
|
|
80
|
+
const rejectHandshake = (pendingConnection, connection, handshaker, error) => {
|
|
81
|
+
handshaker.sendHandshakeResponse(error);
|
|
82
|
+
connection.destroy();
|
|
83
|
+
pendingConnection.destroy();
|
|
84
|
+
};
|
|
85
|
+
exports.rejectHandshake = rejectHandshake;
|
|
86
|
+
const acceptHandshake = (handshaker, pendingConnection, connection) => {
|
|
87
|
+
handshaker.sendHandshakeResponse();
|
|
88
|
+
pendingConnection.onHandshakeCompleted(connection);
|
|
89
|
+
};
|
|
90
|
+
exports.acceptHandshake = acceptHandshake;
|
|
91
|
+
const createHandshakeRequest = (localPeerDescriptor, remotePeerDescriptor) => {
|
|
92
|
+
const outgoingHandshake = {
|
|
93
|
+
sourcePeerDescriptor: localPeerDescriptor,
|
|
94
|
+
targetPeerDescriptor: remotePeerDescriptor,
|
|
95
|
+
version: version_1.LOCAL_PROTOCOL_VERSION
|
|
96
|
+
};
|
|
97
|
+
return {
|
|
98
|
+
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
99
|
+
messageId: (0, uuid_1.v4)(),
|
|
100
|
+
body: {
|
|
101
|
+
oneofKind: 'handshakeRequest',
|
|
102
|
+
handshakeRequest: outgoingHandshake
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
exports.createHandshakeRequest = createHandshakeRequest;
|
|
107
|
+
const createHandshakeResponse = (localPeerDescriptor, error) => {
|
|
108
|
+
const outgoingHandshakeResponse = {
|
|
109
|
+
sourcePeerDescriptor: localPeerDescriptor,
|
|
110
|
+
error,
|
|
111
|
+
version: version_1.LOCAL_PROTOCOL_VERSION
|
|
112
|
+
};
|
|
113
|
+
return {
|
|
114
|
+
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
115
|
+
messageId: (0, uuid_1.v4)(),
|
|
116
|
+
body: {
|
|
117
|
+
oneofKind: 'handshakeResponse',
|
|
118
|
+
handshakeResponse: outgoingHandshakeResponse
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
exports.createHandshakeResponse = createHandshakeResponse;
|
|
10
123
|
class Handshaker extends eventemitter3_1.EventEmitter {
|
|
11
124
|
static HANDSHAKER_SERVICE_ID = 'system/handshaker';
|
|
12
125
|
localPeerDescriptor;
|
|
@@ -44,41 +157,18 @@ class Handshaker extends eventemitter3_1.EventEmitter {
|
|
|
44
157
|
}
|
|
45
158
|
}
|
|
46
159
|
sendHandshakeRequest(remotePeerDescriptor) {
|
|
47
|
-
const
|
|
48
|
-
sourcePeerDescriptor: this.localPeerDescriptor,
|
|
49
|
-
targetPeerDescriptor: remotePeerDescriptor,
|
|
50
|
-
version: version_1.LOCAL_PROTOCOL_VERSION
|
|
51
|
-
};
|
|
52
|
-
const msg = {
|
|
53
|
-
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
54
|
-
messageId: (0, uuid_1.v4)(),
|
|
55
|
-
body: {
|
|
56
|
-
oneofKind: 'handshakeRequest',
|
|
57
|
-
handshakeRequest: outgoingHandshake
|
|
58
|
-
}
|
|
59
|
-
};
|
|
160
|
+
const msg = (0, exports.createHandshakeRequest)(this.localPeerDescriptor, remotePeerDescriptor);
|
|
60
161
|
this.connection.send(DhtRpc_1.Message.toBinary(msg));
|
|
61
162
|
logger.trace('handshake request sent');
|
|
62
163
|
}
|
|
63
164
|
sendHandshakeResponse(error) {
|
|
64
|
-
const
|
|
65
|
-
sourcePeerDescriptor: this.localPeerDescriptor,
|
|
66
|
-
error,
|
|
67
|
-
version: version_1.LOCAL_PROTOCOL_VERSION
|
|
68
|
-
};
|
|
69
|
-
const msg = {
|
|
70
|
-
serviceId: Handshaker.HANDSHAKER_SERVICE_ID,
|
|
71
|
-
messageId: (0, uuid_1.v4)(),
|
|
72
|
-
body: {
|
|
73
|
-
oneofKind: 'handshakeResponse',
|
|
74
|
-
handshakeResponse: outgoingHandshakeResponse
|
|
75
|
-
}
|
|
76
|
-
};
|
|
165
|
+
const msg = (0, exports.createHandshakeResponse)(this.localPeerDescriptor, error);
|
|
77
166
|
this.connection.send(DhtRpc_1.Message.toBinary(msg));
|
|
78
167
|
logger.trace('handshake response sent');
|
|
79
168
|
}
|
|
80
169
|
stop() {
|
|
81
170
|
this.connection.off('data', this.onDataListener);
|
|
171
|
+
this.removeAllListeners();
|
|
82
172
|
}
|
|
83
173
|
}
|
|
84
174
|
exports.Handshaker = Handshaker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../src/connection/Handshaker.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,iDAA4C;AAC5C,+BAAyB;AACzB,gEAAkI;AAElI,gDAAoF;
|
|
1
|
+
{"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../src/connection/Handshaker.ts"],"names":[],"mappings":"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"}
|