@streamr/dht 100.0.0-pretestnet.0 → 100.0.0-pretestnet.3
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 +7 -8
- package/dist/src/connection/ConnectionLockHandler.js +16 -14
- package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +20 -0
- package/dist/src/connection/ConnectionLockRpcLocal.js +47 -0
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -0
- package/dist/src/connection/ConnectionLockRpcRemote.d.ts +4 -3
- package/dist/src/connection/ConnectionLockRpcRemote.js +6 -6
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +5 -8
- package/dist/src/connection/ConnectionManager.js +77 -107
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectivityChecker.d.ts +7 -6
- package/dist/src/connection/ConnectivityChecker.js +23 -20
- package/dist/src/connection/ConnectivityChecker.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +15 -12
- package/dist/src/connection/ConnectorFacade.js +61 -26
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/Handshaker.d.ts +2 -2
- package/dist/src/connection/Handshaker.js +28 -28
- package/dist/src/connection/Handshaker.js.map +1 -1
- package/dist/src/connection/IConnection.d.ts +5 -6
- package/dist/src/connection/IConnection.js.map +1 -1
- package/dist/src/connection/ManagedConnection.d.ts +3 -4
- package/dist/src/connection/ManagedConnection.js +30 -30
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/ManagedWebrtcConnection.d.ts +7 -0
- package/dist/src/connection/ManagedWebrtcConnection.js +20 -0
- package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -0
- package/dist/src/connection/{Simulator → simulator}/Simulator.js +3 -3
- package/dist/src/connection/{Simulator → simulator}/Simulator.js.map +1 -1
- package/dist/src/connection/{Simulator → simulator}/SimulatorConnection.d.ts +3 -4
- package/dist/src/connection/{Simulator → simulator}/SimulatorConnection.js +22 -22
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -0
- package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.d.ts +2 -2
- package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.js +11 -11
- package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/{Simulator → simulator}/SimulatorTransport.d.ts +1 -1
- package/dist/src/connection/{Simulator → simulator}/SimulatorTransport.js +2 -2
- package/dist/src/connection/simulator/SimulatorTransport.js.map +1 -0
- package/dist/src/connection/{Simulator → simulator}/pings.js.map +1 -1
- package/dist/src/connection/{WebRTC/IWebRtcConnection.d.ts → webrtc/IWebrtcConnection.d.ts} +2 -2
- package/dist/src/connection/{WebRTC/IWebRtcConnection.js → webrtc/IWebrtcConnection.js} +1 -1
- package/dist/src/connection/webrtc/IWebrtcConnection.js.map +1 -0
- package/dist/src/connection/{WebRTC/NodeWebRtcConnection.d.ts → webrtc/NodeWebrtcConnection.d.ts} +6 -7
- package/dist/src/connection/{WebRTC/NodeWebRtcConnection.js → webrtc/NodeWebrtcConnection.js} +36 -36
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -0
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +38 -0
- package/dist/src/connection/webrtc/WebrtcConnector.js +178 -0
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -0
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +26 -0
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +99 -0
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -0
- package/dist/src/connection/{WebRTC/WebRtcConnectorRpcRemote.d.ts → webrtc/WebrtcConnectorRpcRemote.d.ts} +4 -4
- package/dist/src/connection/{WebRTC/WebRtcConnectorRpcRemote.js → webrtc/WebrtcConnectorRpcRemote.js} +6 -8
- package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -0
- package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.d.ts +1 -1
- package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +26 -0
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +37 -0
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -0
- package/dist/src/connection/{WebSocket/ClientWebSocket.d.ts → websocket/ClientWebsocket.d.ts} +5 -4
- package/dist/src/connection/{WebSocket/ClientWebSocket.js → websocket/ClientWebsocket.js} +20 -16
- package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -0
- package/dist/src/connection/{WebSocket/ServerWebSocket.d.ts → websocket/ServerWebsocket.d.ts} +2 -2
- package/dist/src/connection/{WebSocket/ServerWebSocket.js → websocket/ServerWebsocket.js} +23 -27
- package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -0
- package/dist/src/connection/{WebSocket/WebSocketConnectorRpcLocal.d.ts → websocket/WebsocketConnector.d.ts} +23 -15
- package/dist/src/connection/{WebSocket/WebSocketConnectorRpcLocal.js → websocket/WebsocketConnector.js} +108 -102
- package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +17 -0
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +26 -0
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -0
- package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.d.ts → websocket/WebsocketConnectorRpcRemote.d.ts} +3 -3
- package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.js → websocket/WebsocketConnectorRpcRemote.js} +5 -10
- package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.js.map → websocket/WebsocketConnectorRpcRemote.js.map} +1 -1
- package/dist/src/connection/{WebSocket/WebSocketServer.d.ts → websocket/WebsocketServer.d.ts} +6 -3
- package/dist/src/connection/{WebSocket/WebSocketServer.js → websocket/WebsocketServer.js} +39 -19
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -0
- package/dist/src/dht/DhtNode.d.ts +11 -19
- package/dist/src/dht/DhtNode.js +119 -150
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +22 -0
- package/dist/src/dht/DhtNodeRpcLocal.js +42 -0
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -0
- package/dist/src/dht/{RemoteDhtNode.d.ts → DhtNodeRpcRemote.d.ts} +5 -3
- package/dist/src/dht/{RemoteDhtNode.js → DhtNodeRpcRemote.js} +17 -21
- package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -0
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +16 -0
- package/dist/src/dht/ExternalApiRpcLocal.js +30 -0
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -0
- package/dist/src/dht/ExternalApiRpcRemote.d.ts +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/contact/Remote.d.ts +4 -1
- package/dist/src/dht/contact/Remote.js +28 -2
- package/dist/src/dht/contact/Remote.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +2 -2
- package/dist/src/dht/contact/SortedContactList.js +3 -3
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +9 -7
- package/dist/src/dht/discovery/DiscoverySession.js +8 -8
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +7 -10
- package/dist/src/dht/discovery/PeerDiscovery.js +5 -5
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/find/FindRpcLocal.d.ts +14 -0
- package/dist/src/dht/find/FindRpcLocal.js +25 -0
- package/dist/src/dht/find/FindRpcLocal.js.map +1 -0
- package/dist/src/dht/find/{RecursiveFindSession.d.ts → FindSession.d.ts} +12 -13
- package/dist/src/dht/find/{RecursiveFindSession.js → FindSession.js} +18 -15
- package/dist/src/dht/find/FindSession.js.map +1 -0
- package/dist/src/dht/find/FindSessionRpcLocal.d.ts +12 -0
- package/dist/src/dht/find/FindSessionRpcLocal.js +17 -0
- package/dist/src/dht/find/FindSessionRpcLocal.js.map +1 -0
- package/dist/src/dht/find/{RemoteRecursiveFindSession.d.ts → FindSessionRpcRemote.d.ts} +2 -2
- package/dist/src/dht/find/{RemoteRecursiveFindSession.js → FindSessionRpcRemote.js} +5 -5
- package/dist/src/dht/find/FindSessionRpcRemote.js.map +1 -0
- package/dist/src/dht/find/{RecursiveFinder.d.ts → Finder.d.ts} +16 -19
- package/dist/src/dht/find/{RecursiveFinder.js → Finder.js} +51 -46
- package/dist/src/dht/find/Finder.js.map +1 -0
- package/dist/src/dht/routing/FindRpcRemote.d.ts +6 -0
- package/dist/src/dht/routing/FindRpcRemote.js +41 -0
- package/dist/src/dht/routing/FindRpcRemote.js.map +1 -0
- package/dist/src/dht/routing/Router.d.ts +10 -17
- package/dist/src/dht/routing/Router.js +48 -90
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.d.ts +22 -0
- package/dist/src/dht/routing/RouterRpcLocal.js +66 -0
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -0
- package/dist/src/dht/routing/RouterRpcRemote.d.ts +0 -1
- package/dist/src/dht/routing/RouterRpcRemote.js +15 -43
- package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +17 -8
- package/dist/src/dht/routing/RoutingSession.js +124 -131
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/routing/getPreviousPeer.d.ts +2 -0
- package/dist/src/dht/routing/getPreviousPeer.js +9 -0
- package/dist/src/dht/routing/getPreviousPeer.js.map +1 -0
- package/dist/src/dht/store/StoreRpcLocal.d.ts +11 -8
- package/dist/src/dht/store/StoreRpcLocal.js +25 -24
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/dht/store/StoreRpcRemote.js +3 -7
- package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
- package/dist/src/exports.d.ts +11 -5
- package/dist/src/exports.js +17 -4
- package/dist/src/exports.js.map +1 -1
- package/dist/src/helpers/Connectivity.d.ts +4 -0
- package/dist/src/helpers/Connectivity.js +24 -0
- package/dist/src/helpers/Connectivity.js.map +1 -0
- package/dist/src/helpers/errors.d.ts +3 -3
- package/dist/src/helpers/errors.js +7 -7
- package/dist/src/helpers/protoClasses.js +3 -3
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +56 -39
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +49 -36
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +64 -84
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +64 -66
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +26 -21
- package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
- package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
- package/dist/src/transport/ITransport.d.ts +5 -6
- package/dist/src/transport/ListeningRpcCommunicator.d.ts +5 -1
- package/dist/src/transport/ListeningRpcCommunicator.js +8 -2
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
- package/dist/src/transport/RoutingRpcCommunicator.js +0 -1
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/dist/src/types/ServiceID.d.ts +1 -0
- package/dist/src/types/ServiceID.js +3 -0
- package/dist/src/types/ServiceID.js.map +1 -0
- package/karma.config.js +4 -4
- package/package.json +10 -8
- package/protos/DhtRpc.proto +32 -35
- package/src/connection/ConnectionLockHandler.ts +19 -17
- package/src/connection/ConnectionLockRpcLocal.ts +74 -0
- package/src/connection/ConnectionLockRpcRemote.ts +7 -6
- package/src/connection/ConnectionManager.ts +59 -95
- package/src/connection/ConnectivityChecker.ts +30 -26
- package/src/connection/ConnectorFacade.ts +74 -34
- package/src/connection/Handshaker.ts +9 -9
- package/src/connection/IConnection.ts +5 -6
- package/src/connection/ManagedConnection.ts +21 -22
- package/src/connection/{ManagedWebRtcConnection.ts → ManagedWebrtcConnection.ts} +9 -9
- package/src/connection/{Simulator → simulator}/Simulator.ts +4 -4
- package/src/connection/{Simulator → simulator}/SimulatorConnection.ts +23 -24
- package/src/connection/{Simulator → simulator}/SimulatorConnector.ts +13 -13
- package/src/connection/{Simulator → simulator}/SimulatorTransport.ts +2 -2
- package/src/connection/{WebRTC/BrowserWebRtcConnection.ts → webrtc/BrowserWebrtcConnection.ts} +12 -13
- package/src/connection/{WebRTC/IWebRtcConnection.ts → webrtc/IWebrtcConnection.ts} +2 -2
- package/src/connection/{WebRTC/NodeWebRtcConnection.ts → webrtc/NodeWebrtcConnection.ts} +32 -33
- package/src/connection/webrtc/WebrtcConnector.ts +225 -0
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +132 -0
- package/src/connection/{WebRTC/WebRtcConnectorRpcRemote.ts → webrtc/WebrtcConnectorRpcRemote.ts} +6 -7
- package/src/connection/{WebRTC → webrtc}/iceServerAsString.ts +1 -1
- package/src/connection/websocket/AutoCertifierClientFacade.ts +91 -0
- package/src/connection/{WebSocket/ClientWebSocket.ts → websocket/ClientWebsocket.ts} +19 -17
- package/src/connection/{WebSocket/ServerWebSocket.ts → websocket/ServerWebsocket.ts} +21 -27
- package/src/connection/{WebSocket/WebSocketConnectorRpcLocal.ts → websocket/WebsocketConnector.ts} +110 -101
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +41 -0
- package/src/connection/{WebSocket/WebSocketConnectorRpcRemote.ts → websocket/WebsocketConnectorRpcRemote.ts} +6 -12
- package/src/connection/{WebSocket/WebSocketServer.ts → websocket/WebsocketServer.ts} +40 -22
- package/src/dht/DhtNode.ts +144 -179
- package/src/dht/DhtNodeRpcLocal.ts +68 -0
- package/src/dht/{RemoteDhtNode.ts → DhtNodeRpcRemote.ts} +12 -13
- package/src/dht/ExternalApiRpcLocal.ts +46 -0
- package/src/dht/ExternalApiRpcRemote.ts +4 -4
- package/src/dht/contact/Remote.ts +32 -4
- package/src/dht/contact/SortedContactList.ts +4 -4
- package/src/dht/discovery/DiscoverySession.ts +23 -20
- package/src/dht/discovery/PeerDiscovery.ts +14 -17
- package/src/dht/find/FindRpcLocal.ts +35 -0
- package/src/dht/find/{RecursiveFindSession.ts → FindSession.ts} +26 -25
- package/src/dht/find/FindSessionRpcLocal.ts +25 -0
- package/src/dht/find/{RemoteRecursiveFindSession.ts → FindSessionRpcRemote.ts} +9 -5
- package/src/dht/find/{RecursiveFinder.ts → Finder.ts} +78 -71
- package/src/dht/routing/FindRpcRemote.ts +40 -0
- package/src/dht/routing/Router.ts +70 -105
- package/src/dht/routing/RouterRpcLocal.ts +81 -0
- package/src/dht/routing/RouterRpcRemote.ts +15 -45
- package/src/dht/routing/RoutingSession.ts +56 -61
- package/src/dht/routing/getPreviousPeer.ts +6 -0
- package/src/dht/store/StoreRpcLocal.ts +44 -37
- package/src/dht/store/StoreRpcRemote.ts +4 -8
- package/src/exports.ts +11 -5
- package/src/helpers/Connectivity.ts +19 -0
- package/src/helpers/errors.ts +3 -3
- package/src/helpers/protoClasses.ts +6 -6
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +75 -59
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +26 -21
- package/src/proto/packages/dht/protos/DhtRpc.ts +87 -114
- package/src/rpc-protocol/DhtCallContext.ts +0 -1
- package/src/transport/ITransport.ts +5 -8
- package/src/transport/ListeningRpcCommunicator.ts +14 -4
- package/src/transport/RoutingRpcCommunicator.ts +3 -4
- package/src/types/ServiceID.ts +1 -0
- package/test/benchmark/{RecursiveFind.test.ts → Find.test.ts} +6 -6
- package/test/benchmark/KademliaCorrectness.test.ts +2 -2
- package/test/benchmark/kademlia-simulation/SimulationNode.ts +3 -3
- package/test/end-to-end/Layer0-Layer1.test.ts +13 -5
- package/test/end-to-end/Layer0.test.ts +35 -17
- package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +24 -6
- package/test/end-to-end/{Layer0WebRTC-Layer1.test.ts → Layer0Webrtc-Layer1.test.ts} +1 -1
- package/test/end-to-end/{Layer0WebRTC.test.ts → Layer0Webrtc.test.ts} +14 -10
- package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +8 -4
- package/test/end-to-end/{Layer1-Scale-WebRTC.test.ts → Layer1-Scale-Webrtc.test.ts} +2 -2
- package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +52 -0
- package/test/end-to-end/{WebSocketConnectionRequest.test.ts → WebsocketConnectionRequest.test.ts} +16 -8
- package/test/end-to-end/memory-leak.test.ts +85 -0
- package/test/integration/ConnectionLocking.test.ts +4 -4
- package/test/integration/ConnectionManager.test.ts +37 -28
- package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
- package/test/integration/DhtNodeExternalAPI.test.ts +10 -10
- package/test/integration/{RemoteDhtNode.test.ts → DhtNodeRpcRemote.test.ts} +10 -10
- package/test/integration/DhtRpc.test.ts +5 -5
- package/test/integration/{RecursiveFind.test.ts → Find.test.ts} +3 -3
- package/test/integration/Layer1-scale.test.ts +1 -1
- package/test/integration/MigrateData.test.ts +6 -5
- package/test/integration/Mock-Layer1-Layer0.test.ts +1 -1
- package/test/integration/MultipleEntryPointJoining.test.ts +6 -6
- package/test/integration/RouteMessage.test.ts +26 -26
- package/test/integration/RpcErrors.test.ts +10 -10
- package/test/integration/ScaleDownDht.test.ts +3 -3
- package/test/integration/SimultaneousConnections.test.ts +10 -7
- package/test/integration/Store.test.ts +1 -1
- package/test/integration/StoreAndDelete.test.ts +1 -1
- package/test/integration/StoreOnDhtWithTwoNodes.test.ts +12 -12
- package/test/integration/{WebRtcConnectionManagement.test.ts → WebrtcConnectionManagement.test.ts} +4 -4
- package/test/integration/{WebRtcConnectorRpc.test.ts → WebrtcConnectorRpc.test.ts} +7 -8
- package/test/integration/{WebSocket.test.ts → Websocket.test.ts} +14 -13
- package/test/integration/{WebSocketConnectionManagement.test.ts → WebsocketConnectionManagement.test.ts} +4 -4
- package/test/integration/{WebSocketConnectorRpc.test.ts → WebsocketConnectorRpc.test.ts} +15 -15
- package/test/unit/AutoCertifierClientFacade.test.ts +58 -0
- package/test/unit/ConnectivityHelpers.test.ts +69 -0
- package/test/unit/{RecursiveFinder.test.ts → Finder.test.ts} +19 -17
- package/test/unit/Router.test.ts +26 -26
- package/test/unit/UUID.test.ts +1 -1
- package/test/unit/{WebSocketConnectorRpcLocal.test.ts → WebsocketConnector.test.ts} +8 -8
- package/test/unit/{WebSocketServer.test.ts → WebsocketServer.test.ts} +20 -14
- package/test/unit/webrtcReplaceInternalIpWithExternalIp.test.ts +1 -1
- package/test/utils/FakeRpcCommunicator.ts +23 -0
- package/test/utils/mock/Transport.ts +1 -1
- package/test/utils/utils.ts +14 -24
- package/tsconfig.browser.json +1 -1
- package/tsconfig.jest.json +3 -2
- package/tsconfig.node.json +3 -2
- package/dist/src/connection/ManagedWebRtcConnection.d.ts +0 -7
- package/dist/src/connection/ManagedWebRtcConnection.js +0 -20
- package/dist/src/connection/ManagedWebRtcConnection.js.map +0 -1
- package/dist/src/connection/Simulator/SimulatorConnection.js.map +0 -1
- package/dist/src/connection/Simulator/SimulatorTransport.js.map +0 -1
- package/dist/src/connection/WebRTC/IWebRtcConnection.js.map +0 -1
- package/dist/src/connection/WebRTC/NodeWebRtcConnection.js.map +0 -1
- package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.d.ts +0 -51
- package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.js +0 -249
- package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/WebRTC/WebRtcConnectorRpcRemote.js.map +0 -1
- package/dist/src/connection/WebSocket/ClientWebSocket.js.map +0 -1
- package/dist/src/connection/WebSocket/ServerWebSocket.js.map +0 -1
- package/dist/src/connection/WebSocket/WebSocketConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/WebSocket/WebSocketServer.js.map +0 -1
- package/dist/src/dht/RemoteDhtNode.js.map +0 -1
- package/dist/src/dht/find/RecursiveFindSession.js.map +0 -1
- package/dist/src/dht/find/RecursiveFinder.js.map +0 -1
- package/dist/src/dht/find/RemoteRecursiveFindSession.js.map +0 -1
- package/dist/src/dht/registerExternalApiRpcMethods.d.ts +0 -2
- package/dist/src/dht/registerExternalApiRpcMethods.js +0 -32
- package/dist/src/dht/registerExternalApiRpcMethods.js.map +0 -1
- package/src/connection/WebRTC/WebRtcConnectorRpcLocal.ts +0 -335
- package/src/dht/registerExternalApiRpcMethods.ts +0 -44
- package/test/utils/mock/RecursiveFinder.ts +0 -19
- /package/dist/src/connection/{Simulator → simulator}/Simulator.d.ts +0 -0
- /package/dist/src/connection/{Simulator → simulator}/pings.d.ts +0 -0
- /package/dist/src/connection/{Simulator → simulator}/pings.js +0 -0
- /package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.js +0 -0
- /package/src/connection/{Simulator → simulator}/pings.ts +0 -0
|
@@ -4,7 +4,6 @@ import { Message, PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc'
|
|
|
4
4
|
import { Connection } from '../Connection'
|
|
5
5
|
import { Logger } from '@streamr/utils'
|
|
6
6
|
import { protoToString } from '../../helpers/protoToString'
|
|
7
|
-
import { DisconnectionType } from '../../transport/ITransport'
|
|
8
7
|
import { keyFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
|
|
9
8
|
|
|
10
9
|
const logger = new Logger(module)
|
|
@@ -12,19 +11,19 @@ const logger = new Logger(module)
|
|
|
12
11
|
export class SimulatorConnection extends Connection implements IConnection {
|
|
13
12
|
|
|
14
13
|
private stopped = false
|
|
15
|
-
public
|
|
14
|
+
public localPeerDescriptor: PeerDescriptor
|
|
16
15
|
private targetPeerDescriptor: PeerDescriptor
|
|
17
16
|
private simulator: Simulator
|
|
18
17
|
|
|
19
18
|
constructor(
|
|
20
|
-
|
|
19
|
+
localPeerDescriptor: PeerDescriptor,
|
|
21
20
|
targetPeerDescriptor: PeerDescriptor,
|
|
22
21
|
connectionType: ConnectionType,
|
|
23
22
|
simulator: Simulator
|
|
24
23
|
) {
|
|
25
24
|
super(connectionType)
|
|
26
25
|
|
|
27
|
-
this.
|
|
26
|
+
this.localPeerDescriptor = localPeerDescriptor
|
|
28
27
|
this.setPeerDescriptor(targetPeerDescriptor)
|
|
29
28
|
this.targetPeerDescriptor = targetPeerDescriptor
|
|
30
29
|
this.connectionType = connectionType
|
|
@@ -46,36 +45,36 @@ export class SimulatorConnection extends Connection implements IConnection {
|
|
|
46
45
|
this.simulator.send(this, data)
|
|
47
46
|
|
|
48
47
|
} else {
|
|
49
|
-
logger.error(keyFromPeerDescriptor(this.
|
|
48
|
+
logger.error(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
50
49
|
'tried to send() on a stopped connection')
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
public async close(
|
|
55
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
53
|
+
public async close(gracefulLeave: boolean): Promise<void> {
|
|
54
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) + ' close()')
|
|
56
55
|
|
|
57
56
|
if (!this.stopped) {
|
|
58
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
57
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', '
|
|
59
58
|
+ keyFromPeerDescriptor(this.targetPeerDescriptor) + ' close() not stopped')
|
|
60
59
|
this.stopped = true
|
|
61
60
|
|
|
62
61
|
try {
|
|
63
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
62
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
64
63
|
' close() calling simulator.disconnect()')
|
|
65
64
|
this.simulator.close(this)
|
|
66
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
65
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
67
66
|
' close() simulator.disconnect returned')
|
|
68
67
|
} catch (e) {
|
|
69
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
68
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
70
69
|
'close aborted' + e)
|
|
71
70
|
} finally {
|
|
72
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
71
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
73
72
|
' calling this.doDisconnect')
|
|
74
|
-
this.doDisconnect(
|
|
73
|
+
this.doDisconnect(gracefulLeave)
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
} else {
|
|
78
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
77
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
|
|
79
78
|
' close() tried to close a stopped connection')
|
|
80
79
|
}
|
|
81
80
|
}
|
|
@@ -87,7 +86,7 @@ export class SimulatorConnection extends Connection implements IConnection {
|
|
|
87
86
|
this.simulator.connect(this, this.targetPeerDescriptor, (error?: string) => {
|
|
88
87
|
if (error) {
|
|
89
88
|
logger.trace(error)
|
|
90
|
-
this.doDisconnect(
|
|
89
|
+
this.doDisconnect(false)
|
|
91
90
|
} else {
|
|
92
91
|
this.emit('connected')
|
|
93
92
|
}
|
|
@@ -109,9 +108,9 @@ export class SimulatorConnection extends Connection implements IConnection {
|
|
|
109
108
|
|
|
110
109
|
public handleIncomingDisconnection(): void {
|
|
111
110
|
if (!this.stopped) {
|
|
112
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
111
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ' handleIncomingDisconnection()')
|
|
113
112
|
this.stopped = true
|
|
114
|
-
this.doDisconnect(
|
|
113
|
+
this.doDisconnect(false)
|
|
115
114
|
} else {
|
|
116
115
|
logger.trace('tried to call handleIncomingDisconnection() a stopped connection')
|
|
117
116
|
}
|
|
@@ -119,22 +118,22 @@ export class SimulatorConnection extends Connection implements IConnection {
|
|
|
119
118
|
|
|
120
119
|
public destroy(): void {
|
|
121
120
|
if (!this.stopped) {
|
|
122
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
121
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ' destroy()')
|
|
123
122
|
this.removeAllListeners()
|
|
124
|
-
this.close(
|
|
123
|
+
this.close(false).catch((_e) => { })
|
|
125
124
|
} else {
|
|
126
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
125
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ' tried to call destroy() a stopped connection')
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
|
|
130
|
-
private doDisconnect(
|
|
131
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
129
|
+
private doDisconnect(gracefulLeave: boolean) {
|
|
130
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ' doDisconnect()')
|
|
132
131
|
this.stopped = true
|
|
133
132
|
|
|
134
|
-
logger.trace(keyFromPeerDescriptor(this.
|
|
133
|
+
logger.trace(keyFromPeerDescriptor(this.localPeerDescriptor) + ', '
|
|
135
134
|
+ keyFromPeerDescriptor(this.targetPeerDescriptor) + ' doDisconnect emitting')
|
|
136
135
|
|
|
137
|
-
this.emit('disconnected',
|
|
136
|
+
this.emit('disconnected', gracefulLeave)
|
|
138
137
|
|
|
139
138
|
}
|
|
140
139
|
}
|
|
@@ -16,16 +16,16 @@ export class SimulatorConnector {
|
|
|
16
16
|
|
|
17
17
|
private connectingConnections: Map<PeerIDKey, ManagedConnection> = new Map()
|
|
18
18
|
private stopped = false
|
|
19
|
-
private
|
|
19
|
+
private localPeerDescriptor: PeerDescriptor
|
|
20
20
|
private simulator: Simulator
|
|
21
21
|
private onIncomingConnection: (connection: ManagedConnection) => boolean
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
24
|
-
|
|
24
|
+
localPeerDescriptor: PeerDescriptor,
|
|
25
25
|
simulator: Simulator,
|
|
26
26
|
onIncomingConnection: (connection: ManagedConnection) => boolean
|
|
27
27
|
) {
|
|
28
|
-
this.
|
|
28
|
+
this.localPeerDescriptor = localPeerDescriptor
|
|
29
29
|
this.simulator = simulator
|
|
30
30
|
this.onIncomingConnection = onIncomingConnection
|
|
31
31
|
}
|
|
@@ -38,9 +38,9 @@ export class SimulatorConnector {
|
|
|
38
38
|
return existingConnection
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
const connection = new SimulatorConnection(this.
|
|
41
|
+
const connection = new SimulatorConnection(this.localPeerDescriptor, targetPeerDescriptor, ConnectionType.SIMULATOR_CLIENT, this.simulator)
|
|
42
42
|
|
|
43
|
-
const managedConnection = new ManagedConnection(this.
|
|
43
|
+
const managedConnection = new ManagedConnection(this.localPeerDescriptor, ConnectionType.SIMULATOR_CLIENT, connection, undefined)
|
|
44
44
|
managedConnection.setPeerDescriptor(targetPeerDescriptor)
|
|
45
45
|
|
|
46
46
|
this.connectingConnections.set(peerKey, managedConnection)
|
|
@@ -57,27 +57,27 @@ export class SimulatorConnector {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
public getPeerDescriptor(): PeerDescriptor {
|
|
60
|
-
return this.
|
|
60
|
+
return this.localPeerDescriptor
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
public handleIncomingConnection(sourceConnection: SimulatorConnection): void {
|
|
64
|
-
logger.trace(keyFromPeerDescriptor(sourceConnection.
|
|
64
|
+
logger.trace(keyFromPeerDescriptor(sourceConnection.localPeerDescriptor) + ' incoming connection, stopped: ' + this.stopped)
|
|
65
65
|
if (this.stopped) {
|
|
66
66
|
return
|
|
67
67
|
}
|
|
68
|
-
const connection = new SimulatorConnection(this.
|
|
69
|
-
sourceConnection.
|
|
68
|
+
const connection = new SimulatorConnection(this.localPeerDescriptor,
|
|
69
|
+
sourceConnection.localPeerDescriptor, ConnectionType.SIMULATOR_SERVER, this.simulator)
|
|
70
70
|
|
|
71
|
-
const managedConnection = new ManagedConnection(this.
|
|
71
|
+
const managedConnection = new ManagedConnection(this.localPeerDescriptor, ConnectionType.SIMULATOR_SERVER, undefined, connection)
|
|
72
72
|
|
|
73
73
|
logger.trace('connected')
|
|
74
74
|
|
|
75
75
|
managedConnection.once('handshakeRequest', () => {
|
|
76
|
-
logger.trace(keyFromPeerDescriptor(sourceConnection.
|
|
76
|
+
logger.trace(keyFromPeerDescriptor(sourceConnection.localPeerDescriptor) + ' incoming handshake request')
|
|
77
77
|
logger.trace('incoming handshake request')
|
|
78
78
|
|
|
79
79
|
if (this.onIncomingConnection(managedConnection)) {
|
|
80
|
-
logger.trace(keyFromPeerDescriptor(sourceConnection.
|
|
80
|
+
logger.trace(keyFromPeerDescriptor(sourceConnection.localPeerDescriptor) + ' calling acceptHandshake')
|
|
81
81
|
managedConnection.acceptHandshake()
|
|
82
82
|
} else {
|
|
83
83
|
managedConnection.rejectHandshake('Duplicate connection')
|
|
@@ -92,7 +92,7 @@ export class SimulatorConnector {
|
|
|
92
92
|
this.stopped = true
|
|
93
93
|
const conns = Array.from(this.connectingConnections.values())
|
|
94
94
|
await Promise.allSettled(conns.map((conn) =>
|
|
95
|
-
conn.close(
|
|
95
|
+
conn.close(false)
|
|
96
96
|
))
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -5,9 +5,9 @@ import { Simulator } from './Simulator'
|
|
|
5
5
|
import { SimulatorConnectorFacade } from '../ConnectorFacade'
|
|
6
6
|
|
|
7
7
|
export class SimulatorTransport extends ConnectionManager {
|
|
8
|
-
constructor(
|
|
8
|
+
constructor(localPeerDescriptor: PeerDescriptor, simulator: Simulator) {
|
|
9
9
|
super({
|
|
10
|
-
createConnectorFacade: () => new SimulatorConnectorFacade(
|
|
10
|
+
createConnectorFacade: () => new SimulatorConnectorFacade(localPeerDescriptor, simulator),
|
|
11
11
|
metricsContext: new MetricsContext()
|
|
12
12
|
})
|
|
13
13
|
}
|
package/src/connection/{WebRTC/BrowserWebRtcConnection.ts → webrtc/BrowserWebrtcConnection.ts}
RENAMED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3'
|
|
2
|
-
import {
|
|
2
|
+
import { WebrtcConnectionEvents, IWebrtcConnection, RtcDescription } from './IWebrtcConnection'
|
|
3
3
|
import { IConnection, ConnectionID, ConnectionEvents, ConnectionType } from '../IConnection'
|
|
4
4
|
import { Logger } from '@streamr/utils'
|
|
5
|
-
import {
|
|
6
|
-
import { IceServer } from './WebRtcConnectorRpcLocal'
|
|
5
|
+
import { IceServer } from './WebrtcConnectorRpcLocal'
|
|
7
6
|
|
|
8
7
|
const logger = new Logger(module)
|
|
9
8
|
|
|
10
|
-
export const
|
|
9
|
+
export const WEBRTC_CLEANUP = new class {
|
|
11
10
|
// eslint-disable-next-line class-methods-use-this
|
|
12
11
|
cleanUp(): void {
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
type Events =
|
|
15
|
+
type Events = WebrtcConnectionEvents & ConnectionEvents
|
|
17
16
|
|
|
18
17
|
interface Params {
|
|
19
18
|
iceServers?: IceServer[]
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
export class
|
|
21
|
+
export class NodeWebrtcConnection extends EventEmitter<Events> implements IWebrtcConnection, IConnection {
|
|
23
22
|
|
|
24
23
|
public readonly connectionId: ConnectionID
|
|
25
24
|
public readonly connectionType: ConnectionType = ConnectionType.WEBRTC
|
|
@@ -39,7 +38,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IWebRt
|
|
|
39
38
|
constructor(params: Params) {
|
|
40
39
|
super()
|
|
41
40
|
this.connectionId = new ConnectionID()
|
|
42
|
-
this.iceServers = params.iceServers
|
|
41
|
+
this.iceServers = params.iceServers ?? []
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
public start(isOffering: boolean): void {
|
|
@@ -135,17 +134,17 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IWebRt
|
|
|
135
134
|
|
|
136
135
|
// IConnection implementation
|
|
137
136
|
|
|
138
|
-
public async close(
|
|
139
|
-
this.doClose(
|
|
137
|
+
public async close(gracefulLeave: boolean, reason?: string): Promise<void> {
|
|
138
|
+
this.doClose(gracefulLeave, reason)
|
|
140
139
|
}
|
|
141
140
|
|
|
142
|
-
private doClose(
|
|
141
|
+
private doClose(gracefulLeave: boolean, reason?: string): void {
|
|
143
142
|
if (!this.closed) {
|
|
144
143
|
this.closed = true
|
|
145
144
|
this.lastState = 'closed'
|
|
146
145
|
|
|
147
146
|
this.stopListening()
|
|
148
|
-
this.emit('disconnected',
|
|
147
|
+
this.emit('disconnected', gracefulLeave, undefined, reason)
|
|
149
148
|
|
|
150
149
|
this.removeAllListeners()
|
|
151
150
|
|
|
@@ -173,7 +172,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IWebRt
|
|
|
173
172
|
|
|
174
173
|
public destroy(): void {
|
|
175
174
|
this.removeAllListeners()
|
|
176
|
-
this.doClose(
|
|
175
|
+
this.doClose(false)
|
|
177
176
|
}
|
|
178
177
|
|
|
179
178
|
public send(data: Uint8Array): void {
|
|
@@ -192,7 +191,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IWebRt
|
|
|
192
191
|
|
|
193
192
|
dataChannel.onclose = () => {
|
|
194
193
|
logger.trace('dc.onClosed')
|
|
195
|
-
this.doClose(
|
|
194
|
+
this.doClose(false)
|
|
196
195
|
}
|
|
197
196
|
|
|
198
197
|
dataChannel.onerror = (err) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface
|
|
1
|
+
export interface WebrtcConnectionEvents {
|
|
2
2
|
localDescription: (description: string, type: string) => void
|
|
3
3
|
localCandidate: (candidate: string, mid: string) => void
|
|
4
4
|
}
|
|
@@ -8,7 +8,7 @@ export enum RtcDescription {
|
|
|
8
8
|
ANSWER = 'answer'
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export interface
|
|
11
|
+
export interface IWebrtcConnection {
|
|
12
12
|
start(isOffering: boolean): void
|
|
13
13
|
|
|
14
14
|
on(event: 'localDescription', listener: (description: string, type: string) => void): this
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IWebrtcConnection, WebrtcConnectionEvents } from './IWebrtcConnection'
|
|
2
2
|
import { ConnectionType, IConnection, ConnectionID, ConnectionEvents } from '../IConnection'
|
|
3
3
|
import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc'
|
|
4
4
|
import EventEmitter from 'eventemitter3'
|
|
5
5
|
import nodeDatachannel, { DataChannel, DescriptionType, PeerConnection } from 'node-datachannel'
|
|
6
6
|
import { Logger } from '@streamr/utils'
|
|
7
|
-
import {
|
|
7
|
+
import { IllegalRtcPeerConnectionState } from '../../helpers/errors'
|
|
8
8
|
import { keyFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
|
|
9
|
-
import { DisconnectionType } from '../../transport/ITransport'
|
|
10
9
|
import { iceServerAsString } from './iceServerAsString'
|
|
11
|
-
import { IceServer } from './
|
|
10
|
+
import { IceServer } from './WebrtcConnector'
|
|
12
11
|
import { PortRange } from '../ConnectionManager'
|
|
13
12
|
|
|
14
13
|
const logger = new Logger(module)
|
|
15
14
|
|
|
16
|
-
export const
|
|
15
|
+
export const WEBRTC_CLEANUP = new class {
|
|
17
16
|
// eslint-disable-next-line class-methods-use-this
|
|
18
17
|
cleanUp(): void {
|
|
19
18
|
nodeDatachannel.cleanup()
|
|
@@ -33,7 +32,7 @@ export interface Params {
|
|
|
33
32
|
// Re-defined accoring to https://github.com/microsoft/TypeScript/blob/main/src/lib/dom.generated.d.ts
|
|
34
33
|
// because importing single dom definitions in not possible
|
|
35
34
|
|
|
36
|
-
enum
|
|
35
|
+
enum RtcPeerConnectionStateEnum {
|
|
37
36
|
closed = 'closed',
|
|
38
37
|
connected = 'connected',
|
|
39
38
|
connecting = 'connecting',
|
|
@@ -44,16 +43,16 @@ enum RTCPeerConnectionStateEnum {
|
|
|
44
43
|
|
|
45
44
|
nodeDatachannel.initLogger('Fatal')
|
|
46
45
|
|
|
47
|
-
type
|
|
46
|
+
type RtcPeerConnectionState = keyof typeof RtcPeerConnectionStateEnum
|
|
48
47
|
|
|
49
|
-
type Events =
|
|
48
|
+
type Events = WebrtcConnectionEvents & ConnectionEvents
|
|
50
49
|
|
|
51
|
-
export class
|
|
50
|
+
export class NodeWebrtcConnection extends EventEmitter<Events> implements IConnection, IWebrtcConnection {
|
|
52
51
|
|
|
53
52
|
public connectionId: ConnectionID
|
|
54
53
|
private connection?: PeerConnection
|
|
55
54
|
private dataChannel?: DataChannel
|
|
56
|
-
private lastState:
|
|
55
|
+
private lastState: RtcPeerConnectionState = 'connecting'
|
|
57
56
|
private remoteDescriptionSet = false
|
|
58
57
|
private connectingTimeoutRef?: NodeJS.Timeout
|
|
59
58
|
|
|
@@ -93,7 +92,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
93
92
|
|
|
94
93
|
this.connectingTimeoutRef = setTimeout(() => {
|
|
95
94
|
logger.trace('connectingTimeout, this.closed === ' + this.closed)
|
|
96
|
-
this.doClose(
|
|
95
|
+
this.doClose(false)
|
|
97
96
|
}, this.connectingTimeout)
|
|
98
97
|
|
|
99
98
|
this.connection.onStateChange((state: string) => this.onStateChange(state))
|
|
@@ -120,10 +119,10 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
120
119
|
this.connection.setRemoteDescription(description, type as DescriptionType)
|
|
121
120
|
this.remoteDescriptionSet = true
|
|
122
121
|
} catch (err) {
|
|
123
|
-
logger.
|
|
122
|
+
logger.debug(`Failed to set remote descriptor for peer ${keyFromPeerDescriptor(this.remotePeerDescriptor)}`)
|
|
124
123
|
}
|
|
125
124
|
} else {
|
|
126
|
-
this.doClose(
|
|
125
|
+
this.doClose(false, `Tried to set description for non-existent connection`)
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
|
|
@@ -134,14 +133,14 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
134
133
|
logger.trace(`Setting remote candidate for peer: ${keyFromPeerDescriptor(this.remotePeerDescriptor)}`)
|
|
135
134
|
this.connection.addRemoteCandidate(candidate, mid)
|
|
136
135
|
} catch (err) {
|
|
137
|
-
logger.
|
|
138
|
-
this.doClose('OTHER')
|
|
136
|
+
logger.debug(`Failed to set remote candidate for peer ${keyFromPeerDescriptor(this.remotePeerDescriptor)}`)
|
|
139
137
|
}
|
|
140
138
|
} else {
|
|
141
|
-
|
|
139
|
+
// TODO: should queue candidates until remote description is set?
|
|
140
|
+
this.doClose(false, `Tried to set candidate before description`)
|
|
142
141
|
}
|
|
143
142
|
} else {
|
|
144
|
-
this.doClose(
|
|
143
|
+
this.doClose(false, `Tried to set candidate for non-existent connection`)
|
|
145
144
|
}
|
|
146
145
|
}
|
|
147
146
|
|
|
@@ -150,16 +149,16 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
150
149
|
try {
|
|
151
150
|
this.dataChannel!.sendMessageBinary(data as Buffer)
|
|
152
151
|
} catch (err) {
|
|
153
|
-
logger.
|
|
152
|
+
logger.debug('Failed to send binary message to ' + keyFromPeerDescriptor(this.remotePeerDescriptor) + err)
|
|
154
153
|
}
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
156
|
|
|
158
|
-
public async close(
|
|
159
|
-
this.doClose(
|
|
157
|
+
public async close(gracefulLeave: boolean, reason?: string): Promise<void> {
|
|
158
|
+
this.doClose(gracefulLeave, reason)
|
|
160
159
|
}
|
|
161
160
|
|
|
162
|
-
private doClose(
|
|
161
|
+
private doClose(gracefulLeave: boolean, reason?: string): void {
|
|
163
162
|
if (!this.closed) {
|
|
164
163
|
logger.trace(
|
|
165
164
|
`Closing Node WebRTC Connection to ${keyFromPeerDescriptor(this.remotePeerDescriptor)}`
|
|
@@ -168,7 +167,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
168
167
|
|
|
169
168
|
this.closed = true
|
|
170
169
|
|
|
171
|
-
this.emit('disconnected',
|
|
170
|
+
this.emit('disconnected', gracefulLeave, undefined, reason)
|
|
172
171
|
this.removeAllListeners()
|
|
173
172
|
|
|
174
173
|
if (this.connectingTimeoutRef) {
|
|
@@ -180,7 +179,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
180
179
|
logger.trace('closing datachannel')
|
|
181
180
|
this.dataChannel.close()
|
|
182
181
|
} catch (e) {
|
|
183
|
-
logger.
|
|
182
|
+
logger.trace('dc.close() errored: %s', e)
|
|
184
183
|
}
|
|
185
184
|
}
|
|
186
185
|
|
|
@@ -188,7 +187,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
188
187
|
try {
|
|
189
188
|
this.connection.close()
|
|
190
189
|
} catch (e) {
|
|
191
|
-
logger.
|
|
190
|
+
logger.trace('conn.close() errored: %s', e)
|
|
192
191
|
}
|
|
193
192
|
}
|
|
194
193
|
}
|
|
@@ -196,7 +195,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
196
195
|
|
|
197
196
|
public destroy(): void {
|
|
198
197
|
this.removeAllListeners()
|
|
199
|
-
this.doClose(
|
|
198
|
+
this.doClose(false)
|
|
200
199
|
}
|
|
201
200
|
|
|
202
201
|
private onDataChannel(dataChannel: DataChannel): void {
|
|
@@ -213,7 +212,7 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
213
212
|
|
|
214
213
|
dataChannel.onClosed(() => {
|
|
215
214
|
logger.trace(`dc.closed`)
|
|
216
|
-
this.doClose(
|
|
215
|
+
this.doClose(false, 'DataChannel closed')
|
|
217
216
|
})
|
|
218
217
|
|
|
219
218
|
dataChannel.onError((err) => logger.error('error', { err }))
|
|
@@ -239,17 +238,17 @@ export class NodeWebRtcConnection extends EventEmitter<Events> implements IConne
|
|
|
239
238
|
|
|
240
239
|
private onStateChange(state: string): void {
|
|
241
240
|
logger.trace('onStateChange ' + state)
|
|
242
|
-
if (!Object.keys(
|
|
243
|
-
throw new
|
|
241
|
+
if (!Object.keys(RtcPeerConnectionStateEnum).filter((s) => isNaN(+s)).includes(state)) {
|
|
242
|
+
throw new IllegalRtcPeerConnectionState('NodeWebrtcConnection used an unknown state: ' + state)
|
|
244
243
|
} else {
|
|
245
|
-
this.lastState = state as
|
|
244
|
+
this.lastState = state as RtcPeerConnectionState
|
|
246
245
|
}
|
|
247
246
|
|
|
248
|
-
if (state ===
|
|
249
|
-
|| state ===
|
|
250
|
-
|| state ===
|
|
247
|
+
if (state === RtcPeerConnectionStateEnum.closed
|
|
248
|
+
|| state === RtcPeerConnectionStateEnum.disconnected
|
|
249
|
+
|| state === RtcPeerConnectionStateEnum.failed
|
|
251
250
|
) {
|
|
252
|
-
this.doClose(
|
|
251
|
+
this.doClose(false)
|
|
253
252
|
}
|
|
254
253
|
|
|
255
254
|
}
|