@streamr/dht 100.0.0-testnet-one.3 → 100.0.0-testnet-two.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/src/connection/ConnectionLockHandler.d.ts +11 -11
- package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
- package/dist/src/connection/ConnectionLockRpcLocal.js +4 -4
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.d.ts +3 -5
- package/dist/src/connection/ConnectionLockRpcRemote.js +4 -7
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +4 -6
- package/dist/src/connection/ConnectionManager.js +48 -46
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +2 -2
- package/dist/src/connection/ConnectorFacade.js +2 -1
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/ManagedConnection.d.ts +3 -6
- package/dist/src/connection/ManagedConnection.js +6 -10
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/connectivityChecker.js +1 -0
- package/dist/src/connection/connectivityChecker.js.map +1 -1
- package/dist/src/connection/simulator/Simulator.d.ts +0 -3
- package/dist/src/connection/simulator/Simulator.js +3 -51
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.js +5 -5
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +2 -2
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
- package/dist/src/connection/webrtc/WebrtcConnector.js +7 -9
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +2 -2
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +11 -12
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +2 -5
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +1 -4
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +1 -2
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -4
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
- package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -7
- package/dist/src/connection/websocket/WebsocketConnector.js +32 -38
- package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +3 -2
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +8 -10
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +3 -6
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +0 -3
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketServer.d.ts +1 -4
- package/dist/src/connection/websocket/WebsocketServer.js +11 -12
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
- package/dist/src/dht/DhtNode.d.ts +10 -13
- package/dist/src/dht/DhtNode.js +39 -52
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +0 -1
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcRemote.d.ts +7 -7
- package/dist/src/dht/DhtNodeRpcRemote.js +8 -7
- package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +5 -4
- package/dist/src/dht/ExternalApiRpcLocal.js +3 -2
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.d.ts +2 -2
- package/dist/src/dht/ExternalApiRpcRemote.js +2 -0
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +13 -14
- package/dist/src/dht/PeerManager.js +45 -60
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/Contact.d.ts +2 -2
- package/dist/src/dht/contact/Contact.js +2 -2
- package/dist/src/dht/contact/Contact.js.map +1 -1
- package/dist/src/dht/contact/ContactList.d.ts +7 -7
- package/dist/src/dht/contact/ContactList.js +3 -3
- package/dist/src/dht/contact/ContactList.js.map +1 -1
- package/dist/src/dht/contact/RandomContactList.d.ts +4 -4
- package/dist/src/dht/contact/RandomContactList.js +12 -11
- package/dist/src/dht/contact/RandomContactList.js.map +1 -1
- package/dist/src/dht/contact/RpcRemote.d.ts +7 -4
- package/dist/src/dht/contact/RpcRemote.js +5 -2
- package/dist/src/dht/contact/RpcRemote.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +13 -13
- package/dist/src/dht/contact/SortedContactList.js +33 -29
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +2 -4
- package/dist/src/dht/discovery/DiscoverySession.js +19 -20
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +2 -5
- package/dist/src/dht/discovery/PeerDiscovery.js +12 -20
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +36 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +165 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +14 -0
- package/dist/src/dht/{find/FindRpcLocal.js → recursive-operation/RecursiveOperationRpcLocal.js} +7 -7
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +6 -0
- package/dist/src/dht/{routing/FindRpcRemote.js → recursive-operation/RecursiveOperationRpcRemote.js} +11 -11
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +42 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +182 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +12 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +17 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +6 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +21 -0
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +1 -0
- package/dist/src/dht/routing/Router.d.ts +4 -19
- package/dist/src/dht/routing/Router.js +41 -33
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.js +6 -5
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcRemote.d.ts +2 -2
- package/dist/src/dht/routing/RouterRpcRemote.js +7 -7
- package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +20 -16
- package/dist/src/dht/routing/RoutingSession.js +37 -45
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/LocalDataStore.d.ts +11 -13
- package/dist/src/dht/store/LocalDataStore.js +36 -56
- package/dist/src/dht/store/LocalDataStore.js.map +1 -1
- package/dist/src/dht/store/StoreManager.d.ts +33 -0
- package/dist/src/dht/store/StoreManager.js +186 -0
- package/dist/src/dht/store/StoreManager.js.map +1 -0
- package/dist/src/dht/store/StoreRpcLocal.d.ts +8 -40
- package/dist/src/dht/store/StoreRpcLocal.js +13 -229
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/dht/store/StoreRpcRemote.d.ts +5 -5
- package/dist/src/dht/store/StoreRpcRemote.js +4 -5
- package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
- package/dist/src/exports.d.ts +2 -0
- package/dist/src/exports.js.map +1 -1
- package/dist/src/helpers/MapWithTtl.d.ts +14 -0
- package/dist/src/helpers/MapWithTtl.js +59 -0
- package/dist/src/helpers/MapWithTtl.js.map +1 -0
- package/dist/src/helpers/PeerID.d.ts +2 -0
- package/dist/src/helpers/PeerID.js +4 -0
- package/dist/src/helpers/PeerID.js.map +1 -1
- package/dist/src/helpers/nodeId.d.ts +5 -0
- package/dist/src/helpers/nodeId.js +18 -1
- package/dist/src/helpers/nodeId.js.map +1 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +2 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.js +2 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
- package/dist/src/helpers/protoClasses.js +2 -3
- package/dist/src/helpers/protoClasses.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +21 -22
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +18 -18
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +36 -60
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +34 -53
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +11 -12
- package/dist/src/rpc-protocol/DhtCallContext.d.ts +2 -1
- package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
- package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +2 -1
- package/dist/src/transport/ITransport.d.ts +9 -1
- package/dist/src/transport/ITransport.js +5 -0
- package/dist/src/transport/ITransport.js.map +1 -1
- package/dist/src/transport/ListeningRpcCommunicator.js +1 -1
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
- package/dist/src/transport/RoutingRpcCommunicator.js +16 -11
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/jest.config.js +4 -1
- package/karma-setup.js +2 -0
- package/karma.config.js +11 -7
- package/package.json +6 -7
- package/protos/DhtRpc.proto +17 -23
- package/src/connection/ConnectionLockHandler.ts +15 -15
- package/src/connection/ConnectionLockRpcLocal.ts +8 -9
- package/src/connection/ConnectionLockRpcRemote.ts +7 -16
- package/src/connection/ConnectionManager.ts +58 -55
- package/src/connection/ConnectorFacade.ts +3 -0
- package/src/connection/ManagedConnection.ts +12 -30
- package/src/connection/connectivityChecker.ts +1 -0
- package/src/connection/simulator/Simulator.ts +5 -36
- package/src/connection/simulator/SimulatorConnector.ts +8 -8
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -3
- package/src/connection/webrtc/NodeWebrtcConnection.ts +3 -4
- package/src/connection/webrtc/WebrtcConnector.ts +11 -13
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +16 -16
- package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +3 -13
- package/src/connection/websocket/AutoCertifierClientFacade.ts +4 -6
- package/src/connection/websocket/ClientWebsocket.ts +1 -0
- package/src/connection/websocket/WebsocketConnector.ts +43 -56
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +11 -13
- package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +4 -15
- package/src/connection/websocket/WebsocketServer.ts +14 -17
- package/src/dht/DhtNode.ts +67 -69
- package/src/dht/DhtNodeRpcLocal.ts +0 -1
- package/src/dht/DhtNodeRpcRemote.ts +13 -13
- package/src/dht/ExternalApiRpcLocal.ts +16 -6
- package/src/dht/ExternalApiRpcRemote.ts +5 -3
- package/src/dht/PeerManager.ts +73 -90
- package/src/dht/contact/Contact.ts +5 -4
- package/src/dht/contact/ContactList.ts +9 -9
- package/src/dht/contact/RandomContactList.ts +14 -14
- package/src/dht/contact/RpcRemote.ts +10 -7
- package/src/dht/contact/SortedContactList.ts +48 -45
- package/src/dht/discovery/DiscoverySession.ts +25 -25
- package/src/dht/discovery/PeerDiscovery.ts +16 -37
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +240 -0
- package/src/dht/{find/FindRpcLocal.ts → recursive-operation/RecursiveOperationRpcLocal.ts} +9 -9
- package/src/dht/{routing/FindRpcRemote.ts → recursive-operation/RecursiveOperationRpcRemote.ts} +10 -10
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +224 -0
- package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +25 -0
- package/src/dht/{find/FindSessionRpcRemote.ts → recursive-operation/RecursiveOperationSessionRpcRemote.ts} +8 -8
- package/src/dht/routing/Router.ts +45 -64
- package/src/dht/routing/RouterRpcLocal.ts +7 -6
- package/src/dht/routing/RouterRpcRemote.ts +9 -10
- package/src/dht/routing/RoutingSession.ts +59 -68
- package/src/dht/store/LocalDataStore.ts +47 -66
- package/src/dht/store/StoreManager.ts +217 -0
- package/src/dht/store/StoreRpcLocal.ts +26 -302
- package/src/dht/store/StoreRpcRemote.ts +9 -11
- package/src/exports.ts +2 -0
- package/src/helpers/MapWithTtl.ts +71 -0
- package/src/helpers/PeerID.ts +5 -0
- package/src/helpers/nodeId.ts +20 -0
- package/src/helpers/peerIdFromPeerDescriptor.ts +5 -3
- package/src/helpers/protoClasses.ts +4 -6
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +31 -32
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +11 -12
- package/src/proto/packages/dht/protos/DhtRpc.ts +49 -80
- package/src/rpc-protocol/DhtCallContext.ts +2 -1
- package/src/rpc-protocol/DhtRpcOptions.ts +2 -1
- package/src/transport/ITransport.ts +10 -1
- package/src/transport/ListeningRpcCommunicator.ts +1 -1
- package/src/transport/RoutingRpcCommunicator.ts +18 -12
- package/test/benchmark/Find.test.ts +8 -21
- package/test/benchmark/KademliaCorrectness.test.ts +11 -20
- package/test/benchmark/SortedContactListBenchmark.test.ts +9 -9
- package/test/benchmark/kademlia-simulation/Contact.ts +9 -8
- package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +2 -2
- package/test/benchmark/kademlia-simulation/SimulationNode.ts +17 -17
- package/test/end-to-end/Layer0-Layer1.test.ts +10 -14
- package/test/end-to-end/Layer0.test.ts +15 -18
- package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +7 -9
- package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +4 -10
- package/test/end-to-end/Layer0Webrtc.test.ts +5 -6
- package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +8 -16
- package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +6 -13
- package/test/end-to-end/WebsocketConnectionRequest.test.ts +5 -6
- package/test/end-to-end/memory-leak.test.ts +6 -8
- package/test/integration/ConnectionLocking.test.ts +6 -13
- package/test/integration/ConnectionManager.test.ts +26 -43
- package/test/integration/DhtJoinPeerDiscovery.test.ts +5 -10
- package/test/integration/DhtNodeExternalAPI.test.ts +16 -22
- package/test/integration/DhtNodeRpcRemote.test.ts +13 -22
- package/test/integration/DhtRpc.test.ts +13 -18
- package/test/integration/Find.test.ts +10 -10
- package/test/integration/Layer1-scale.test.ts +17 -28
- package/test/integration/Mock-Layer1-Layer0.test.ts +25 -43
- package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
- package/test/integration/ReplicateData.test.ts +28 -30
- package/test/integration/RouteMessage.test.ts +30 -27
- package/test/integration/RouterRpcRemote.test.ts +12 -18
- package/test/integration/RpcErrors.test.ts +8 -21
- package/test/integration/ScaleDownDht.test.ts +11 -10
- package/test/integration/SimultaneousConnections.test.ts +43 -67
- package/test/integration/Store.test.ts +23 -36
- package/test/integration/StoreAndDelete.test.ts +30 -50
- package/test/integration/StoreOnDhtWithTwoNodes.test.ts +16 -37
- package/test/integration/StoreRpcRemote.test.ts +20 -30
- package/test/integration/WebrtcConnectionManagement.test.ts +3 -13
- package/test/integration/WebrtcConnectorRpc.test.ts +3 -9
- package/test/integration/WebsocketConnectionManagement.test.ts +7 -10
- package/test/integration/WebsocketConnectorRpc.test.ts +8 -17
- package/test/unit/ConnectivityHelpers.test.ts +9 -17
- package/test/unit/DuplicateDetector.test.ts +7 -4
- package/test/unit/LocalDataStore.test.ts +66 -77
- package/test/unit/PeerManager.test.ts +31 -0
- package/test/unit/RandomContactList.test.ts +13 -8
- package/test/unit/{Finder.test.ts → RecursiveOperationManager.test.ts} +38 -43
- package/test/unit/RecursiveOperationSession.test.ts +68 -0
- package/test/unit/Router.test.ts +15 -22
- package/test/unit/RoutingSession.test.ts +23 -25
- package/test/unit/SortedContactList.test.ts +41 -26
- package/test/unit/StoreManager.test.ts +132 -0
- package/test/unit/WebsocketConnector.test.ts +27 -35
- package/test/unit/customMatchers.test.ts +16 -0
- package/test/utils/FakeTransport.ts +44 -0
- package/test/utils/customMatchers.ts +70 -0
- package/test/utils/mock/MockRpcCommunicator.ts +7 -0
- package/test/utils/mock/Router.ts +3 -2
- package/test/utils/mock/mockDataEntry.ts +36 -0
- package/test/utils/utils.ts +49 -87
- package/dist/src/dht/find/FindRpcLocal.d.ts +0 -14
- package/dist/src/dht/find/FindRpcLocal.js.map +0 -1
- package/dist/src/dht/find/FindSession.d.ts +0 -44
- package/dist/src/dht/find/FindSession.js +0 -150
- package/dist/src/dht/find/FindSession.js.map +0 -1
- package/dist/src/dht/find/FindSessionRpcLocal.d.ts +0 -12
- package/dist/src/dht/find/FindSessionRpcLocal.js +0 -17
- package/dist/src/dht/find/FindSessionRpcLocal.js.map +0 -1
- package/dist/src/dht/find/FindSessionRpcRemote.d.ts +0 -6
- package/dist/src/dht/find/FindSessionRpcRemote.js +0 -21
- package/dist/src/dht/find/FindSessionRpcRemote.js.map +0 -1
- package/dist/src/dht/find/Finder.d.ts +0 -49
- package/dist/src/dht/find/Finder.js +0 -197
- package/dist/src/dht/find/Finder.js.map +0 -1
- package/dist/src/dht/routing/FindRpcRemote.d.ts +0 -6
- package/dist/src/dht/routing/FindRpcRemote.js.map +0 -1
- package/src/dht/find/FindSession.ts +0 -183
- package/src/dht/find/FindSessionRpcLocal.ts +0 -25
- package/src/dht/find/Finder.ts +0 -295
|
@@ -9,8 +9,7 @@ import {
|
|
|
9
9
|
ConnectivityResponse,
|
|
10
10
|
HandshakeError,
|
|
11
11
|
PeerDescriptor,
|
|
12
|
-
WebsocketConnectionRequest
|
|
13
|
-
WebsocketConnectionResponse
|
|
12
|
+
WebsocketConnectionRequest
|
|
14
13
|
} from '../../proto/packages/dht/protos/DhtRpc'
|
|
15
14
|
import { WebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client'
|
|
16
15
|
import { Logger, binaryToHex, wait } from '@streamr/utils'
|
|
@@ -18,11 +17,9 @@ import { ManagedConnection } from '../ManagedConnection'
|
|
|
18
17
|
import { WebsocketServer } from './WebsocketServer'
|
|
19
18
|
import { sendConnectivityRequest } from '../connectivityChecker'
|
|
20
19
|
import { NatType, PortRange, TlsCertificate } from '../ConnectionManager'
|
|
21
|
-
import { PeerIDKey } from '../../helpers/PeerID'
|
|
22
20
|
import { ServerWebsocket } from './ServerWebsocket'
|
|
23
|
-
import { toProtoRpcClient } from '@streamr/proto-rpc'
|
|
24
21
|
import { Handshaker } from '../Handshaker'
|
|
25
|
-
import { areEqualPeerDescriptors,
|
|
22
|
+
import { areEqualPeerDescriptors, getNodeIdFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
|
|
26
23
|
import { ParsedUrlQuery } from 'querystring'
|
|
27
24
|
import { range, sample } from 'lodash'
|
|
28
25
|
import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
|
|
@@ -31,6 +28,8 @@ import { WebsocketServerStartError } from '../../helpers/errors'
|
|
|
31
28
|
import { AutoCertifierClientFacade } from './AutoCertifierClientFacade'
|
|
32
29
|
import { attachConnectivityRequestHandler } from '../connectivityRequestHandler'
|
|
33
30
|
import * as Err from '../../helpers/errors'
|
|
31
|
+
import { Empty } from '../../proto/google/protobuf/empty'
|
|
32
|
+
import { NodeID } from '../../helpers/nodeId'
|
|
34
33
|
|
|
35
34
|
const logger = new Logger(module)
|
|
36
35
|
|
|
@@ -45,6 +44,7 @@ const ENTRY_POINT_CONNECTION_ATTEMPTS = 5
|
|
|
45
44
|
export interface WebsocketConnectorConfig {
|
|
46
45
|
transport: ITransport
|
|
47
46
|
onNewConnection: (connection: ManagedConnection) => boolean
|
|
47
|
+
hasConnection: (peerDescriptor: PeerDescriptor) => boolean
|
|
48
48
|
portRange?: PortRange
|
|
49
49
|
maxMessageSize?: number
|
|
50
50
|
host?: string
|
|
@@ -61,38 +61,26 @@ export class WebsocketConnector {
|
|
|
61
61
|
private static readonly WEBSOCKET_CONNECTOR_SERVICE_ID = 'system/websocket-connector'
|
|
62
62
|
private readonly rpcCommunicator: ListeningRpcCommunicator
|
|
63
63
|
private readonly websocketServer?: WebsocketServer
|
|
64
|
-
private readonly ongoingConnectRequests: Map<
|
|
65
|
-
private onNewConnection: (connection: ManagedConnection) => boolean
|
|
64
|
+
private readonly ongoingConnectRequests: Map<NodeID, ManagedConnection> = new Map()
|
|
66
65
|
private host?: string
|
|
67
|
-
private readonly entrypoints?: PeerDescriptor[]
|
|
68
|
-
private readonly tlsCertificate?: TlsCertificate
|
|
69
|
-
private readonly autoCertifierTransport: ITransport
|
|
70
|
-
private readonly autoCertifierUrl: string
|
|
71
|
-
private readonly autoCertifierConfigFile: string
|
|
72
|
-
private readonly serverEnableTls: boolean
|
|
73
66
|
private autoCertifierClient?: AutoCertifierClientFacade
|
|
74
67
|
private selectedPort?: number
|
|
75
68
|
private localPeerDescriptor?: PeerDescriptor
|
|
76
|
-
private connectingConnections: Map<
|
|
69
|
+
private connectingConnections: Map<NodeID, ManagedConnection> = new Map()
|
|
77
70
|
private abortController = new AbortController()
|
|
71
|
+
private readonly config: WebsocketConnectorConfig
|
|
78
72
|
|
|
79
73
|
constructor(config: WebsocketConnectorConfig) {
|
|
74
|
+
this.config = config
|
|
80
75
|
this.websocketServer = config.portRange ? new WebsocketServer({
|
|
81
76
|
portRange: config.portRange,
|
|
82
77
|
tlsCertificate: config.tlsCertificate,
|
|
83
78
|
maxMessageSize: config.maxMessageSize,
|
|
84
79
|
enableTls: config.serverEnableTls
|
|
85
80
|
}) : undefined
|
|
86
|
-
this.onNewConnection = config.onNewConnection
|
|
87
81
|
this.host = config.host
|
|
88
|
-
this.entrypoints = config.entrypoints
|
|
89
|
-
this.tlsCertificate = config.tlsCertificate
|
|
90
|
-
this.autoCertifierTransport = config.autoCertifierTransport
|
|
91
|
-
this.autoCertifierUrl = config.autoCertifierUrl
|
|
92
|
-
this.autoCertifierConfigFile = config.autoCertifierConfigFile
|
|
93
|
-
this.serverEnableTls = config.serverEnableTls
|
|
94
82
|
this.rpcCommunicator = new ListeningRpcCommunicator(WebsocketConnector.WEBSOCKET_CONNECTOR_SERVICE_ID, config.transport, {
|
|
95
|
-
rpcRequestTimeout: 15000
|
|
83
|
+
rpcRequestTimeout: 15000 // TODO use config option or named constant?
|
|
96
84
|
})
|
|
97
85
|
this.registerLocalRpcMethods(config)
|
|
98
86
|
}
|
|
@@ -101,10 +89,11 @@ export class WebsocketConnector {
|
|
|
101
89
|
const rpcLocal = new WebsocketConnectorRpcLocal({
|
|
102
90
|
connect: (targetPeerDescriptor: PeerDescriptor) => this.connect(targetPeerDescriptor),
|
|
103
91
|
hasConnection: (targetPeerDescriptor: PeerDescriptor): boolean => {
|
|
104
|
-
const
|
|
105
|
-
if (this.connectingConnections.has(
|
|
106
|
-
|| this.connectingConnections.has(
|
|
107
|
-
|| this.ongoingConnectRequests.has(
|
|
92
|
+
const nodeId = getNodeIdFromPeerDescriptor(targetPeerDescriptor)
|
|
93
|
+
if (this.connectingConnections.has(nodeId)
|
|
94
|
+
|| this.connectingConnections.has(nodeId)
|
|
95
|
+
|| this.ongoingConnectRequests.has(nodeId)
|
|
96
|
+
|| config.hasConnection(targetPeerDescriptor)
|
|
108
97
|
) {
|
|
109
98
|
return true
|
|
110
99
|
} else {
|
|
@@ -114,15 +103,14 @@ export class WebsocketConnector {
|
|
|
114
103
|
onNewConnection: (connection: ManagedConnection) => config.onNewConnection(connection),
|
|
115
104
|
abortSignal: this.abortController.signal
|
|
116
105
|
})
|
|
117
|
-
this.rpcCommunicator.
|
|
106
|
+
this.rpcCommunicator.registerRpcNotification(
|
|
118
107
|
WebsocketConnectionRequest,
|
|
119
|
-
WebsocketConnectionResponse,
|
|
120
108
|
'requestConnection',
|
|
121
|
-
async (req: WebsocketConnectionRequest, context: ServerCallContext): Promise<
|
|
109
|
+
async (req: WebsocketConnectionRequest, context: ServerCallContext): Promise<Empty> => {
|
|
122
110
|
if (!this.abortController.signal.aborted) {
|
|
123
111
|
return rpcLocal.requestConnection(req, context)
|
|
124
112
|
} else {
|
|
125
|
-
return {
|
|
113
|
+
return {}
|
|
126
114
|
}
|
|
127
115
|
}
|
|
128
116
|
)
|
|
@@ -137,9 +125,9 @@ export class WebsocketConnector {
|
|
|
137
125
|
|
|
138
126
|
public async autoCertify(): Promise<void> {
|
|
139
127
|
this.autoCertifierClient = new AutoCertifierClientFacade({
|
|
140
|
-
configFile: this.autoCertifierConfigFile,
|
|
141
|
-
transport: this.autoCertifierTransport,
|
|
142
|
-
url: this.autoCertifierUrl,
|
|
128
|
+
configFile: this.config.autoCertifierConfigFile,
|
|
129
|
+
transport: this.config.autoCertifierTransport,
|
|
130
|
+
url: this.config.autoCertifierUrl,
|
|
143
131
|
wsServerPort: this.selectedPort!,
|
|
144
132
|
setHost: (hostName: string) => this.setHost(hostName),
|
|
145
133
|
updateCertificate: (certificate: string, privateKey: string) => this.websocketServer!.updateCertificate(certificate, privateKey)
|
|
@@ -183,17 +171,17 @@ export class WebsocketConnector {
|
|
|
183
171
|
return noServerConnectivityResponse
|
|
184
172
|
}
|
|
185
173
|
for (const reattempt of range(ENTRY_POINT_CONNECTION_ATTEMPTS)) {
|
|
186
|
-
const entryPoint = sample(this.entrypoints)!
|
|
174
|
+
const entryPoint = sample(this.config.entrypoints)!
|
|
187
175
|
try {
|
|
188
176
|
if (!this.websocketServer) {
|
|
189
177
|
return noServerConnectivityResponse
|
|
190
178
|
} else {
|
|
191
|
-
if (!this.entrypoints || this.entrypoints.length === 0) {
|
|
179
|
+
if (!this.config.entrypoints || this.config.entrypoints.length === 0) {
|
|
192
180
|
// return connectivity info given in config
|
|
193
181
|
const preconfiguredConnectivityResponse: ConnectivityResponse = {
|
|
194
182
|
host: this.host!,
|
|
195
183
|
natType: NatType.OPEN_INTERNET,
|
|
196
|
-
websocket: { host: this.host!, port: this.selectedPort!, tls: this.tlsCertificate !== undefined }
|
|
184
|
+
websocket: { host: this.host!, port: this.selectedPort!, tls: this.config.tlsCertificate !== undefined }
|
|
197
185
|
}
|
|
198
186
|
return preconfiguredConnectivityResponse
|
|
199
187
|
} else {
|
|
@@ -201,7 +189,7 @@ export class WebsocketConnector {
|
|
|
201
189
|
const connectivityRequest = {
|
|
202
190
|
port: this.selectedPort!,
|
|
203
191
|
host: this.host,
|
|
204
|
-
tls: this.serverEnableTls,
|
|
192
|
+
tls: this.config.serverEnableTls,
|
|
205
193
|
selfSigned
|
|
206
194
|
}
|
|
207
195
|
if (!this.abortController.signal.aborted) {
|
|
@@ -229,8 +217,8 @@ export class WebsocketConnector {
|
|
|
229
217
|
}
|
|
230
218
|
|
|
231
219
|
public connect(targetPeerDescriptor: PeerDescriptor): ManagedConnection {
|
|
232
|
-
const
|
|
233
|
-
const existingConnection = this.connectingConnections.get(
|
|
220
|
+
const nodeId = getNodeIdFromPeerDescriptor(targetPeerDescriptor)
|
|
221
|
+
const existingConnection = this.connectingConnections.get(nodeId)
|
|
234
222
|
if (existingConnection) {
|
|
235
223
|
return existingConnection
|
|
236
224
|
}
|
|
@@ -251,11 +239,11 @@ export class WebsocketConnector {
|
|
|
251
239
|
)
|
|
252
240
|
managedConnection.setRemotePeerDescriptor(targetPeerDescriptor)
|
|
253
241
|
|
|
254
|
-
this.connectingConnections.set(
|
|
242
|
+
this.connectingConnections.set(getNodeIdFromPeerDescriptor(targetPeerDescriptor), managedConnection)
|
|
255
243
|
|
|
256
244
|
const delFunc = () => {
|
|
257
|
-
if (this.connectingConnections.has(
|
|
258
|
-
this.connectingConnections.delete(
|
|
245
|
+
if (this.connectingConnections.has(nodeId)) {
|
|
246
|
+
this.connectingConnections.delete(nodeId)
|
|
259
247
|
}
|
|
260
248
|
socket.off('disconnected', delFunc)
|
|
261
249
|
managedConnection.off('handshakeCompleted', delFunc)
|
|
@@ -274,13 +262,15 @@ export class WebsocketConnector {
|
|
|
274
262
|
const remoteConnector = new WebsocketConnectorRpcRemote(
|
|
275
263
|
localPeerDescriptor,
|
|
276
264
|
targetPeerDescriptor,
|
|
277
|
-
|
|
265
|
+
'DUMMY',
|
|
266
|
+
this.rpcCommunicator,
|
|
267
|
+
WebsocketConnectorRpcClient
|
|
278
268
|
)
|
|
279
|
-
remoteConnector.requestConnection().then((
|
|
280
|
-
logger.trace('Sent WebsocketConnectionRequest
|
|
269
|
+
remoteConnector.requestConnection().then(() => {
|
|
270
|
+
logger.trace('Sent WebsocketConnectionRequest notification to peer', { targetPeerDescriptor })
|
|
281
271
|
return
|
|
282
272
|
}, (err) => {
|
|
283
|
-
logger.debug('Failed to send WebsocketConnectionRequest
|
|
273
|
+
logger.debug('Failed to send WebsocketConnectionRequest notification to peer ', {
|
|
284
274
|
error: err, targetPeerDescriptor
|
|
285
275
|
})
|
|
286
276
|
})
|
|
@@ -292,9 +282,9 @@ export class WebsocketConnector {
|
|
|
292
282
|
undefined,
|
|
293
283
|
targetPeerDescriptor
|
|
294
284
|
)
|
|
295
|
-
managedConnection.on('disconnected', () => this.ongoingConnectRequests.delete(
|
|
285
|
+
managedConnection.on('disconnected', () => this.ongoingConnectRequests.delete(getNodeIdFromPeerDescriptor(targetPeerDescriptor)))
|
|
296
286
|
managedConnection.setRemotePeerDescriptor(targetPeerDescriptor)
|
|
297
|
-
this.ongoingConnectRequests.set(
|
|
287
|
+
this.ongoingConnectRequests.set(getNodeIdFromPeerDescriptor(targetPeerDescriptor), managedConnection)
|
|
298
288
|
return managedConnection
|
|
299
289
|
}
|
|
300
290
|
|
|
@@ -303,13 +293,12 @@ export class WebsocketConnector {
|
|
|
303
293
|
serverWebsocket: IConnection,
|
|
304
294
|
targetPeerDescriptor?: PeerDescriptor
|
|
305
295
|
) {
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const ongoingConnectRequest = this.ongoingConnectRequests.get(peerId.toKey())!
|
|
296
|
+
const nodeId = getNodeIdFromPeerDescriptor(sourcePeerDescriptor)
|
|
297
|
+
if (this.ongoingConnectRequests.has(nodeId)) {
|
|
298
|
+
const ongoingConnectRequest = this.ongoingConnectRequests.get(nodeId)!
|
|
310
299
|
ongoingConnectRequest.attachImplementation(serverWebsocket)
|
|
311
300
|
ongoingConnectRequest.acceptHandshake()
|
|
312
|
-
this.ongoingConnectRequests.delete(
|
|
301
|
+
this.ongoingConnectRequests.delete(nodeId)
|
|
313
302
|
} else {
|
|
314
303
|
const managedConnection = new ManagedConnection(
|
|
315
304
|
this.localPeerDescriptor!,
|
|
@@ -318,12 +307,10 @@ export class WebsocketConnector {
|
|
|
318
307
|
serverWebsocket,
|
|
319
308
|
targetPeerDescriptor
|
|
320
309
|
)
|
|
321
|
-
|
|
322
310
|
managedConnection.setRemotePeerDescriptor(sourcePeerDescriptor)
|
|
323
|
-
|
|
324
311
|
if (targetPeerDescriptor && !areEqualPeerDescriptors(this.localPeerDescriptor!, targetPeerDescriptor)) {
|
|
325
312
|
managedConnection.rejectHandshake(HandshakeError.INVALID_TARGET_PEER_DESCRIPTOR)
|
|
326
|
-
} else if (this.onNewConnection(managedConnection)) {
|
|
313
|
+
} else if (this.config.onNewConnection(managedConnection)) {
|
|
327
314
|
managedConnection.acceptHandshake()
|
|
328
315
|
} else {
|
|
329
316
|
managedConnection.rejectHandshake(HandshakeError.DUPLICATE_CONNECTION)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
|
|
2
2
|
import {
|
|
3
3
|
PeerDescriptor,
|
|
4
|
-
WebsocketConnectionRequest
|
|
5
|
-
WebsocketConnectionResponse
|
|
4
|
+
WebsocketConnectionRequest
|
|
6
5
|
} from '../../proto/packages/dht/protos/DhtRpc'
|
|
7
6
|
import { IWebsocketConnectorRpc } from '../../proto/packages/dht/protos/DhtRpc.server'
|
|
8
7
|
import { DhtCallContext } from '../../rpc-protocol/DhtCallContext'
|
|
9
8
|
import { ManagedConnection } from '../ManagedConnection'
|
|
9
|
+
import { Empty } from '../../proto/google/protobuf/empty'
|
|
10
10
|
|
|
11
11
|
interface WebsocketConnectorRpcLocalConfig {
|
|
12
12
|
connect: (targetPeerDescriptor: PeerDescriptor) => ManagedConnection
|
|
@@ -23,17 +23,15 @@ export class WebsocketConnectorRpcLocal implements IWebsocketConnectorRpc {
|
|
|
23
23
|
this.config = config
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
public async requestConnection(_request: WebsocketConnectionRequest, context: ServerCallContext): Promise<
|
|
26
|
+
public async requestConnection(_request: WebsocketConnectionRequest, context: ServerCallContext): Promise<Empty> {
|
|
27
|
+
if (this.config.abortSignal.aborted) {
|
|
28
|
+
return {}
|
|
29
|
+
}
|
|
27
30
|
const senderPeerDescriptor = (context as DhtCallContext).incomingSourceDescriptor!
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const connection = this.config.connect(senderPeerDescriptor)
|
|
34
|
-
this.config.onNewConnection(connection)
|
|
35
|
-
}
|
|
36
|
-
})
|
|
37
|
-
return { accepted: true }
|
|
31
|
+
if (!this.config.hasConnection(senderPeerDescriptor)) {
|
|
32
|
+
const connection = this.config.connect(senderPeerDescriptor)
|
|
33
|
+
this.config.onNewConnection(connection)
|
|
34
|
+
}
|
|
35
|
+
return {}
|
|
38
36
|
}
|
|
39
37
|
}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
WebsocketConnectionRequest,
|
|
4
|
-
WebsocketConnectionResponse
|
|
2
|
+
WebsocketConnectionRequest
|
|
5
3
|
} from '../../proto/packages/dht/protos/DhtRpc'
|
|
6
|
-
import { IWebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client'
|
|
7
4
|
import { Logger } from '@streamr/utils'
|
|
8
|
-
import { ProtoRpcClient } from '@streamr/proto-rpc'
|
|
9
5
|
import { getNodeIdFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
|
|
10
6
|
import { RpcRemote } from '../../dht/contact/RpcRemote'
|
|
7
|
+
import { WebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client'
|
|
11
8
|
|
|
12
9
|
const logger = new Logger(module)
|
|
13
10
|
|
|
14
|
-
export class WebsocketConnectorRpcRemote extends RpcRemote<
|
|
11
|
+
export class WebsocketConnectorRpcRemote extends RpcRemote<WebsocketConnectorRpcClient> {
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
localPeerDescriptor: PeerDescriptor,
|
|
18
|
-
remotePeerDescriptor: PeerDescriptor,
|
|
19
|
-
client: ProtoRpcClient<IWebsocketConnectorRpcClient>
|
|
20
|
-
) {
|
|
21
|
-
super(localPeerDescriptor, remotePeerDescriptor, 'DUMMY', client)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async requestConnection(): Promise<WebsocketConnectionResponse> {
|
|
13
|
+
async requestConnection(): Promise<void> {
|
|
25
14
|
logger.trace(`Requesting WebSocket connection from ${getNodeIdFromPeerDescriptor(this.getLocalPeerDescriptor())}`)
|
|
26
15
|
const request: WebsocketConnectionRequest = {}
|
|
27
16
|
const options = this.formDhtRpcOptions()
|
|
@@ -33,24 +33,18 @@ export class WebsocketServer extends EventEmitter<ConnectionSourceEvents> {
|
|
|
33
33
|
private httpServer?: HttpServer | HttpsServer
|
|
34
34
|
private wsServer?: WsServer
|
|
35
35
|
private readonly abortController = new AbortController()
|
|
36
|
-
private readonly
|
|
37
|
-
private readonly tlsCertificate?: TlsCertificate
|
|
38
|
-
private readonly enableTls: boolean
|
|
39
|
-
private readonly maxMessageSize: number
|
|
36
|
+
private readonly config: WebsocketServerConfig
|
|
40
37
|
|
|
41
38
|
constructor(config: WebsocketServerConfig) {
|
|
42
39
|
super()
|
|
43
|
-
this.
|
|
44
|
-
this.enableTls = config.enableTls
|
|
45
|
-
this.tlsCertificate = config.tlsCertificate
|
|
46
|
-
this.maxMessageSize = config.maxMessageSize ?? 1048576
|
|
40
|
+
this.config = config
|
|
47
41
|
}
|
|
48
42
|
|
|
49
43
|
public async start(): Promise<number> {
|
|
50
|
-
const ports = range(this.portRange.min, this.portRange.max + 1)
|
|
44
|
+
const ports = range(this.config.portRange.min, this.config.portRange.max + 1)
|
|
51
45
|
for (const port of ports) {
|
|
52
46
|
try {
|
|
53
|
-
await asAbortable(this.startServer(port, this.enableTls), this.abortController.signal)
|
|
47
|
+
await asAbortable(this.startServer(port, this.config.enableTls), this.abortController.signal)
|
|
54
48
|
return port
|
|
55
49
|
} catch (err) {
|
|
56
50
|
if (err.originalError?.code === 'EADDRINUSE') {
|
|
@@ -60,7 +54,9 @@ export class WebsocketServer extends EventEmitter<ConnectionSourceEvents> {
|
|
|
60
54
|
}
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
throw new WebsocketServerStartError(
|
|
57
|
+
throw new WebsocketServerStartError(
|
|
58
|
+
`Failed to start WebSocket server on any port in range: ${this.config.portRange.min}-${this.config.portRange.min}`
|
|
59
|
+
)
|
|
64
60
|
}
|
|
65
61
|
|
|
66
62
|
// If tlsCertificate has been given the tls boolean is ignored
|
|
@@ -72,14 +68,15 @@ export class WebsocketServer extends EventEmitter<ConnectionSourceEvents> {
|
|
|
72
68
|
response.end()
|
|
73
69
|
}
|
|
74
70
|
return new Promise((resolve, reject) => {
|
|
75
|
-
if (this.tlsCertificate) {
|
|
71
|
+
if (this.config.tlsCertificate) {
|
|
76
72
|
this.httpServer = createHttpsServer({
|
|
77
|
-
key: fs.readFileSync(this.tlsCertificate.privateKeyFileName),
|
|
78
|
-
cert: fs.readFileSync(this.tlsCertificate.certFileName)
|
|
73
|
+
key: fs.readFileSync(this.config.tlsCertificate.privateKeyFileName),
|
|
74
|
+
cert: fs.readFileSync(this.config.tlsCertificate.certFileName)
|
|
79
75
|
}, requestListener)
|
|
80
76
|
} else if (!tls) {
|
|
81
77
|
this.httpServer = createHttpServer(requestListener)
|
|
82
78
|
} else {
|
|
79
|
+
// TODO use config option or named constant?
|
|
83
80
|
const certificate = createSelfSignedCertificate('streamr-self-signed-' + new UUID().toString(), 1000)
|
|
84
81
|
this.httpServer = createHttpsServer({
|
|
85
82
|
key: certificate.serverKey,
|
|
@@ -159,19 +156,19 @@ export class WebsocketServer extends EventEmitter<ConnectionSourceEvents> {
|
|
|
159
156
|
}
|
|
160
157
|
|
|
161
158
|
private createWsServer(httpServer: HttpServer | HttpsServer): WsServer {
|
|
159
|
+
const maxReceivedMessageSize = this.config.maxMessageSize ?? 1048576
|
|
162
160
|
// Use the real nodejs WebSocket server in Electron tests
|
|
163
|
-
|
|
164
161
|
if (typeof NodeJsWsServer !== 'undefined') {
|
|
165
162
|
return new NodeJsWsServer({
|
|
166
163
|
httpServer,
|
|
167
164
|
autoAcceptConnections: false,
|
|
168
|
-
maxReceivedMessageSize
|
|
165
|
+
maxReceivedMessageSize
|
|
169
166
|
})
|
|
170
167
|
} else {
|
|
171
168
|
return this.wsServer = new WsServer({
|
|
172
169
|
httpServer,
|
|
173
170
|
autoAcceptConnections: false,
|
|
174
|
-
maxReceivedMessageSize
|
|
171
|
+
maxReceivedMessageSize
|
|
175
172
|
})
|
|
176
173
|
}
|
|
177
174
|
}
|