@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.
Files changed (231) hide show
  1. package/dist/package.json +7 -7
  2. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
  3. package/dist/src/connection/ConnectionLockRpcLocal.js +8 -8
  4. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  5. package/dist/src/connection/ConnectionLockRpcRemote.js +1 -1
  6. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  7. package/dist/src/connection/ConnectionManager.d.ts +4 -6
  8. package/dist/src/connection/ConnectionManager.js +128 -103
  9. package/dist/src/connection/ConnectionManager.js.map +1 -1
  10. package/dist/src/connection/ConnectorFacade.d.ts +15 -14
  11. package/dist/src/connection/ConnectorFacade.js +70 -52
  12. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  13. package/dist/src/connection/Handshaker.d.ts +9 -2
  14. package/dist/src/connection/Handshaker.js +117 -27
  15. package/dist/src/connection/Handshaker.js.map +1 -1
  16. package/dist/src/connection/ManagedConnection.d.ts +13 -38
  17. package/dist/src/connection/ManagedConnection.js +31 -252
  18. package/dist/src/connection/ManagedConnection.js.map +1 -1
  19. package/dist/src/connection/OutputBuffer.d.ts +9 -0
  20. package/dist/src/connection/OutputBuffer.js +26 -0
  21. package/dist/src/connection/OutputBuffer.js.map +1 -0
  22. package/dist/src/connection/PendingConnection.d.ts +19 -0
  23. package/dist/src/connection/PendingConnection.js +59 -0
  24. package/dist/src/connection/PendingConnection.js.map +1 -0
  25. package/dist/src/connection/connectivityChecker.js +3 -3
  26. package/dist/src/connection/connectivityChecker.js.map +1 -1
  27. package/dist/src/connection/connectivityRequestHandler.js +2 -2
  28. package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
  29. package/dist/src/connection/simulator/Simulator.d.ts +1 -3
  30. package/dist/src/connection/simulator/Simulator.js +1 -4
  31. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  32. package/dist/src/connection/simulator/SimulatorConnection.js +1 -2
  33. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  34. package/dist/src/connection/simulator/SimulatorConnector.d.ts +3 -3
  35. package/dist/src/connection/simulator/SimulatorConnector.js +28 -21
  36. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  37. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -6
  38. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +3 -20
  39. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  40. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +11 -6
  41. package/dist/src/connection/webrtc/WebrtcConnector.js +57 -42
  42. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  43. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +8 -10
  44. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +21 -44
  45. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  46. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +8 -2
  47. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +1 -1
  48. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +3 -3
  49. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +8 -8
  50. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
  51. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +1 -1
  52. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +1 -1
  53. package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +26 -0
  54. package/dist/src/connection/websocket/WebsocketClientConnector.js +86 -0
  55. package/dist/src/connection/websocket/WebsocketClientConnector.js.map +1 -0
  56. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +19 -0
  57. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +23 -0
  58. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +1 -0
  59. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +5 -0
  60. package/dist/src/connection/websocket/{WebsocketConnectorRpcRemote.js → WebsocketClientConnectorRpcRemote.js} +4 -4
  61. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +1 -0
  62. package/dist/src/connection/websocket/WebsocketServer.d.ts +8 -5
  63. package/dist/src/connection/websocket/WebsocketServer.js +11 -11
  64. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  65. package/dist/src/connection/websocket/{WebsocketConnector.d.ts → WebsocketServerConnector.d.ts} +16 -21
  66. package/dist/src/connection/websocket/{WebsocketConnector.js → WebsocketServerConnector.js} +112 -160
  67. package/dist/src/connection/websocket/WebsocketServerConnector.js.map +1 -0
  68. package/dist/src/dht/DhtNode.d.ts +4 -4
  69. package/dist/src/dht/DhtNode.js +85 -84
  70. package/dist/src/dht/DhtNode.js.map +1 -1
  71. package/dist/src/dht/DhtNodeRpcLocal.d.ts +3 -3
  72. package/dist/src/dht/DhtNodeRpcLocal.js +9 -9
  73. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  74. package/dist/src/dht/ExternalApiRpcLocal.d.ts +3 -3
  75. package/dist/src/dht/ExternalApiRpcLocal.js +5 -5
  76. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  77. package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
  78. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  79. package/dist/src/dht/PeerManager.d.ts +4 -4
  80. package/dist/src/dht/PeerManager.js +22 -22
  81. package/dist/src/dht/PeerManager.js.map +1 -1
  82. package/dist/src/dht/contact/SortedContactList.d.ts +3 -3
  83. package/dist/src/dht/contact/SortedContactList.js +9 -9
  84. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  85. package/dist/src/dht/discovery/DiscoverySession.d.ts +3 -3
  86. package/dist/src/dht/discovery/DiscoverySession.js +21 -21
  87. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  88. package/dist/src/dht/discovery/PeerDiscovery.d.ts +3 -3
  89. package/dist/src/dht/discovery/PeerDiscovery.js +46 -44
  90. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  91. package/dist/src/dht/discovery/RingDiscoverySession.d.ts +3 -3
  92. package/dist/src/dht/discovery/RingDiscoverySession.js +19 -19
  93. package/dist/src/dht/discovery/RingDiscoverySession.js.map +1 -1
  94. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +3 -3
  95. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +33 -33
  96. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
  97. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +3 -3
  98. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +8 -8
  99. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
  100. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +4 -4
  101. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +24 -24
  102. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
  103. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -4
  104. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -5
  105. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
  106. package/dist/src/dht/routing/Router.d.ts +3 -3
  107. package/dist/src/dht/routing/Router.js +20 -20
  108. package/dist/src/dht/routing/Router.js.map +1 -1
  109. package/dist/src/dht/routing/RouterRpcLocal.d.ts +3 -3
  110. package/dist/src/dht/routing/RouterRpcLocal.js +16 -16
  111. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  112. package/dist/src/dht/routing/RoutingSession.d.ts +3 -3
  113. package/dist/src/dht/routing/RoutingSession.js +24 -24
  114. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  115. package/dist/src/dht/store/StoreManager.d.ts +3 -3
  116. package/dist/src/dht/store/StoreManager.js +25 -25
  117. package/dist/src/dht/store/StoreManager.js.map +1 -1
  118. package/dist/src/dht/store/StoreRpcLocal.d.ts +3 -3
  119. package/dist/src/dht/store/StoreRpcLocal.js +12 -12
  120. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  121. package/dist/src/exports.d.ts +3 -0
  122. package/dist/src/exports.js +5 -1
  123. package/dist/src/exports.js.map +1 -1
  124. package/dist/src/proto/google/protobuf/any.d.ts +5 -8
  125. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  126. package/dist/src/proto/google/protobuf/empty.d.ts +1 -0
  127. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  128. package/dist/src/proto/google/protobuf/timestamp.d.ts +1 -10
  129. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  130. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -4
  131. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +8 -8
  132. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  133. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +3 -3
  134. package/dist/src/proto/packages/dht/protos/DhtRpc.js +4 -4
  135. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  136. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -2
  137. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  138. package/dist/src/transport/ListeningRpcCommunicator.d.ts +2 -2
  139. package/dist/src/transport/ListeningRpcCommunicator.js +2 -2
  140. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  141. package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -2
  142. package/dist/src/transport/RoutingRpcCommunicator.js +2 -2
  143. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  144. package/package.json +7 -7
  145. package/protos/DhtRpc.proto +1 -1
  146. package/src/connection/ConnectionLockRpcLocal.ts +9 -9
  147. package/src/connection/ConnectionLockRpcRemote.ts +1 -1
  148. package/src/connection/ConnectionManager.ts +153 -111
  149. package/src/connection/ConnectorFacade.ts +84 -61
  150. package/src/connection/Handshaker.ts +131 -27
  151. package/src/connection/ManagedConnection.ts +41 -304
  152. package/src/connection/OutputBuffer.ts +28 -0
  153. package/src/connection/PendingConnection.ts +68 -0
  154. package/src/connection/connectivityChecker.ts +2 -2
  155. package/src/connection/connectivityRequestHandler.ts +1 -1
  156. package/src/connection/simulator/Simulator.ts +1 -5
  157. package/src/connection/simulator/SimulatorConnection.ts +1 -2
  158. package/src/connection/simulator/SimulatorConnector.ts +34 -33
  159. package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -6
  160. package/src/connection/webrtc/NodeWebrtcConnection.ts +3 -24
  161. package/src/connection/webrtc/WebrtcConnector.ts +73 -62
  162. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +26 -56
  163. package/src/connection/websocket/AbstractWebsocketClientConnection.ts +8 -2
  164. package/src/connection/websocket/AutoCertifierClientFacade.ts +11 -11
  165. package/src/connection/websocket/NodeWebsocketClientConnection.ts +1 -1
  166. package/src/connection/websocket/WebsocketClientConnector.ts +119 -0
  167. package/src/connection/websocket/WebsocketClientConnectorRpcLocal.ts +39 -0
  168. package/src/connection/websocket/{WebsocketConnectorRpcRemote.ts → WebsocketClientConnectorRpcRemote.ts} +2 -2
  169. package/src/connection/websocket/WebsocketServer.ts +18 -14
  170. package/src/connection/websocket/{WebsocketConnector.ts → WebsocketServerConnector.ts} +128 -205
  171. package/src/dht/DhtNode.ts +90 -89
  172. package/src/dht/DhtNodeRpcLocal.ts +11 -11
  173. package/src/dht/ExternalApiRpcLocal.ts +6 -6
  174. package/src/dht/ExternalApiRpcRemote.ts +2 -2
  175. package/src/dht/PeerManager.ts +24 -24
  176. package/src/dht/contact/SortedContactList.ts +10 -10
  177. package/src/dht/discovery/DiscoverySession.ts +24 -24
  178. package/src/dht/discovery/PeerDiscovery.ts +47 -45
  179. package/src/dht/discovery/RingDiscoverySession.ts +23 -23
  180. package/src/dht/recursive-operation/RecursiveOperationManager.ts +36 -36
  181. package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +9 -9
  182. package/src/dht/recursive-operation/RecursiveOperationSession.ts +25 -25
  183. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +7 -7
  184. package/src/dht/routing/Router.ts +21 -21
  185. package/src/dht/routing/RouterRpcLocal.ts +17 -17
  186. package/src/dht/routing/RoutingSession.ts +26 -26
  187. package/src/dht/store/StoreManager.ts +27 -27
  188. package/src/dht/store/StoreRpcLocal.ts +13 -13
  189. package/src/exports.ts +3 -0
  190. package/src/proto/google/protobuf/any.ts +6 -9
  191. package/src/proto/google/protobuf/empty.ts +2 -1
  192. package/src/proto/google/protobuf/timestamp.ts +2 -11
  193. package/src/proto/packages/dht/protos/DhtRpc.client.ts +9 -9
  194. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -3
  195. package/src/proto/packages/dht/protos/DhtRpc.ts +4 -4
  196. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  197. package/src/transport/ListeningRpcCommunicator.ts +3 -3
  198. package/src/transport/RoutingRpcCommunicator.ts +3 -3
  199. package/test/end-to-end/Layer0Webrtc.test.ts +0 -10
  200. package/test/integration/ConnectionManager.test.ts +3 -2
  201. package/test/integration/GeoIpConnectivityChecking.test.ts +1 -1
  202. package/test/integration/SimultaneousConnections.test.ts +2 -2
  203. package/test/integration/WebrtcConnectionManagement.test.ts +2 -10
  204. package/test/integration/{WebsocketConnectorRpc.test.ts → WebsocketClientConnectorRpc.test.ts} +9 -9
  205. package/test/integration/WebsocketConnectionManagement.test.ts +11 -29
  206. package/test/unit/ConnectionManager.test.ts +64 -0
  207. package/test/unit/DiscoverySession.test.ts +1 -1
  208. package/test/unit/Handshaker.test.ts +169 -0
  209. package/test/unit/ManagedConnection.test.ts +58 -0
  210. package/test/unit/PendingConnection.test.ts +57 -0
  211. package/test/unit/WebrtcConnector.test.ts +56 -0
  212. package/test/unit/{WebsocketConnector.test.ts → WebsocketClientConnector.test.ts} +56 -11
  213. package/test/unit/WebsocketServerConnector.test.ts +102 -0
  214. package/test/utils/FakeConnectorFacade.ts +41 -0
  215. package/test/utils/mock/MockConnection.ts +26 -0
  216. package/test/utils/utils.ts +2 -2
  217. package/dist/src/connection/IConnectionSource.d.ts +0 -4
  218. package/dist/src/connection/IConnectionSource.js +0 -3
  219. package/dist/src/connection/IConnectionSource.js.map +0 -1
  220. package/dist/src/connection/webrtc/ManagedWebrtcConnection.d.ts +0 -7
  221. package/dist/src/connection/webrtc/ManagedWebrtcConnection.js +0 -20
  222. package/dist/src/connection/webrtc/ManagedWebrtcConnection.js.map +0 -1
  223. package/dist/src/connection/websocket/WebsocketConnector.js.map +0 -1
  224. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +0 -19
  225. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +0 -23
  226. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +0 -1
  227. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +0 -5
  228. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +0 -1
  229. package/src/connection/IConnectionSource.ts +0 -6
  230. package/src/connection/webrtc/ManagedWebrtcConnection.ts +0 -27
  231. 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) => ManagedConnection;
10
+ createConnection: (peerDescriptor: PeerDescriptor) => PendingConnection;
11
11
  getLocalPeerDescriptor: () => PeerDescriptor | undefined;
12
- start: (onNewConnection: (connection: ManagedConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport) => Promise<void>;
12
+ start: (onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport) => Promise<void>;
13
13
  stop: () => Promise<void>;
14
14
  }
15
- export interface DefaultConnectorFacadeConfig {
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 config;
35
+ private readonly options;
37
36
  private localPeerDescriptor?;
38
- private websocketConnector?;
37
+ private websocketConnectorRpcCommunicator?;
38
+ private websocketClientConnector?;
39
+ private websocketServerConnector?;
39
40
  private webrtcConnector?;
40
- constructor(config: DefaultConnectorFacadeConfig);
41
- start(onNewConnection: (connection: ManagedConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport): Promise<void>;
41
+ constructor(options: DefaultConnectorFacadeOptions);
42
+ start(onNewConnection: (connection: PendingConnection) => boolean, hasConnection: (nodeId: DhtAddress) => boolean, autoCertifierTransport: ITransport): Promise<void>;
42
43
  private setLocalPeerDescriptor;
43
- restartWebsocketConnector(webSocketConnectorConfig: WebsocketConnectorConfig): Promise<void>;
44
- createConnection(peerDescriptor: PeerDescriptor): ManagedConnection;
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: ManagedConnection) => boolean): Promise<void>;
54
- createConnection(peerDescriptor: PeerDescriptor): ManagedConnection;
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 WebsocketConnector_1 = require("./websocket/WebsocketConnector");
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
- config;
12
+ options;
11
13
  localPeerDescriptor;
12
- websocketConnector;
14
+ websocketConnectorRpcCommunicator;
15
+ websocketClientConnector;
16
+ websocketServerConnector;
13
17
  webrtcConnector;
14
- constructor(config) {
15
- this.config = config;
18
+ constructor(options) {
19
+ this.options = options;
16
20
  }
17
21
  async start(onNewConnection, hasConnection, autoCertifierTransport) {
18
22
  logger.trace(`Creating WebsocketConnectorRpcLocal`);
19
- const webSocketConnectorConfig = {
20
- transport: this.config.transport,
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
- portRange: this.config.websocketPortRange,
25
- host: this.config.websocketHost,
26
- entrypoints: this.config.entryPoints,
27
- tlsCertificate: this.config.tlsCertificate,
28
- serverEnableTls: this.config.websocketServerEnableTls,
29
- autoCertifierUrl: this.config.autoCertifierUrl,
30
- autoCertifierConfigFile: this.config.autoCertifierConfigFile,
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.config.maxMessageSize,
33
- geoIpDatabaseFolder: this.config.geoIpDatabaseFolder
45
+ maxMessageSize: this.options.maxMessageSize,
46
+ geoIpDatabaseFolder: this.options.geoIpDatabaseFolder
34
47
  };
35
- this.websocketConnector = new WebsocketConnector_1.WebsocketConnector(webSocketConnectorConfig);
36
- logger.trace(`Creating WebRtcConnectorRpcLocal`);
48
+ this.websocketServerConnector = new WebsocketServerConnector_1.WebsocketServerConnector(webSocketServerConnectorOptions);
37
49
  this.webrtcConnector = new WebrtcConnector_1.WebrtcConnector({
38
- transport: this.config.transport,
39
- iceServers: this.config.iceServers,
40
- allowPrivateAddresses: this.config.webrtcAllowPrivateAddresses,
41
- bufferThresholdLow: this.config.webrtcDatachannelBufferThresholdLow,
42
- bufferThresholdHigh: this.config.webrtcDatachannelBufferThresholdHigh,
43
- connectionTimeout: this.config.webrtcNewConnectionTimeout,
44
- externalIp: this.config.externalIp,
45
- portRange: this.config.webrtcPortRange,
46
- maxMessageSize: this.config.maxMessageSize
47
- }, onNewConnection);
48
- await this.websocketConnector.start();
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 config. Currently it's given by the DhtNode and it sets the PeerDescriptor for 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.config.tlsCertificate && this.config.websocketServerEnableTls === true);
54
- const connectivityResponse = await this.websocketConnector.checkConnectivity(temporarilySelfSigned);
55
- const localPeerDescriptor = await this.config.createLocalPeerDescriptor(connectivityResponse);
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.config.tlsCertificate && this.config.websocketServerEnableTls) {
69
+ if (localPeerDescriptor.websocket && !this.options.tlsCertificate && this.options.websocketServerEnableTls) {
58
70
  try {
59
- await this.websocketConnector.autoCertify();
60
- const connectivityResponse = await this.websocketConnector.checkConnectivity(false);
61
- const autocertifiedLocalPeerDescriptor = await this.config.createLocalPeerDescriptor(connectivityResponse);
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.restartWebsocketConnector({
68
- ...webSocketConnectorConfig,
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.restartWebsocketConnector({
76
- ...webSocketConnectorConfig,
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.websocketConnector.setLocalPeerDescriptor(peerDescriptor);
96
+ this.websocketServerConnector.setLocalPeerDescriptor(peerDescriptor);
97
+ this.websocketClientConnector.setLocalPeerDescriptor(peerDescriptor);
85
98
  this.webrtcConnector.setLocalPeerDescriptor(peerDescriptor);
86
99
  }
87
- async restartWebsocketConnector(webSocketConnectorConfig) {
88
- await this.websocketConnector.destroy();
89
- this.websocketConnector = new WebsocketConnector_1.WebsocketConnector(webSocketConnectorConfig);
90
- await this.websocketConnector.start();
91
- const connectivityResponse = await this.websocketConnector.checkConnectivity(false);
92
- const localPeerDescriptor = await this.config.createLocalPeerDescriptor(connectivityResponse);
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.websocketConnector.isPossibleToFormConnection(peerDescriptor)) {
97
- return this.websocketConnector.connect(peerDescriptor);
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
- await this.websocketConnector.destroy();
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":"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"}
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
- private static readonly HANDSHAKER_SERVICE_ID;
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 outgoingHandshake = {
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 outgoingHandshakeResponse = {
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":"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"}
1
+ {"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../src/connection/Handshaker.ts"],"names":[],"mappings":"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"}