fix(relay): ignore some situations when relay not needed

This commit is contained in:
Alexey Kasyanchuk 2020-01-08 21:49:51 +03:00
parent 2e05bc9e68
commit ab5303ecae

View File

@ -165,6 +165,7 @@ class p2p {
if (this.p2pStatus === 0) { if (this.p2pStatus === 0) {
// switch to direct status, otherwise it's relay // switch to direct status, otherwise it's relay
this.p2pStatus = 2 this.p2pStatus = 2
this.relay.client = false;
this.send('p2pStatus', this.p2pStatus) this.send('p2pStatus', this.p2pStatus)
} }
}) })
@ -347,16 +348,24 @@ class p2p {
} }
else else
{ {
logT('relay', 'tcp p2p port is unreachable, using relay client') logT('relay', 'tcp p2p port is unreachable')
this.relay.client = true; if(this.p2pStatus === 0)
// try reconnect to new relay server {
let candidatePeer = this.peersList().filter(peer => peer.relay && peer.relay.server) logT('relay', 'using relay client')
if(candidatePeer && candidatePeer.length > 0) { this.relay.client = true;
logT('relay', 'reconnect to new relay, because no relays connection before check'); // try reconnect to new relay server
this.connectToRelay(candidatePeer[0]) let candidatePeer = this.peersList().filter(peer => peer.relay && peer.relay.server)
if(candidatePeer && candidatePeer.length > 0) {
logT('relay', 'reconnect to new relay, because no relays connection before check');
this.connectToRelay(candidatePeer[0])
}
this.p2pStatus = 0
this.send('p2pStatus', this.p2pStatus)
}
else
{
this.send('p2pStatus', this.p2pStatus)
} }
this.p2pStatus = 0
this.send('p2pStatus', this.p2pStatus)
} }
}) })
} }