Update P2PNetworkPeers.js
This commit is contained in:
1 parent
02723165b4
commit
3270608e34
1 file changed
+14
-14
@@ -1,9 +1,9 @@
|
||||
exports.newNetworkModulesP2PNetworkPeers = function newNetworkModulesP2PNetworkPeers() {
|
||||
/*
|
||||
This module represents the P2P Nodes we are connected to.
|
||||
This module holds the P2P Nodes we are coonected to and that are connected to us.
|
||||
*/
|
||||
let thisObject = {
|
||||
peers: undefined,
|
||||
outgoingConnectedPeers: undefined,
|
||||
|
||||
/* Framework Functions */
|
||||
initialize: initialize,
|
||||
@@ -16,13 +16,13 @@ exports.newNetworkModulesP2PNetworkPeers = function newNetworkModulesP2PNetworkP
|
||||
return thisObject
|
||||
|
||||
function finalize() {
|
||||
thisObject.peers = undefined
|
||||
thisObject.outgoingConnectedPeers = undefined
|
||||
clearInterval(intervalIdConnectToPeers)
|
||||
}
|
||||
|
||||
async function initialize() {
|
||||
|
||||
thisObject.peers = []
|
||||
thisObject.outgoingConnectedPeers = []
|
||||
|
||||
connectToPeers()
|
||||
intervalIdConnectToPeers = setInterval(connectToPeers, RECONNECT_DELAY);
|
||||
@@ -31,20 +31,20 @@ exports.newNetworkModulesP2PNetworkPeers = function newNetworkModulesP2PNetworkP
|
||||
|
||||
async function connectToPeers() {
|
||||
|
||||
if (thisObject.peers.count >= global.env.P2P_NETWORK_NODE_MAX_OUTGOING_PEERS) { return }
|
||||
if (thisObject.outgoingConnectedPeers.count >= global.env.P2P_NETWORK_NODE_MAX_OUTGOING_PEERS) { return }
|
||||
|
||||
for (let i = 0; i < NT.networkNode.p2pNetwork.p2pNodesToConnect.length; i++) {
|
||||
if (thisObject.peers.count >= global.env.P2P_NETWORK_NODE_MAX_OUTGOING_PEERS) { break }
|
||||
if (thisObject.outgoingConnectedPeers.count >= global.env.P2P_NETWORK_NODE_MAX_OUTGOING_PEERS) { break }
|
||||
let peer = {}
|
||||
peer.p2pNetworkNode = NT.networkNode.p2pNetwork.p2pNodesToConnect[i]
|
||||
if (isAlreadyAConnectedPeer(peer) === true) { continue }
|
||||
if (isOutgoingConnectedPeer(peer) === true) { continue }
|
||||
peer.webSocketsClient = SA.projects.network.modules.webSocketsNetworkClient.newNetworkModulesWebSocketsNetworkClient()
|
||||
await peer.webSocketsClient.initialize('Network Peer', peer.p2pNetworkNode, onConnectionClosed)
|
||||
.then(addPeer)
|
||||
.catch(onError)
|
||||
|
||||
function addPeer() {
|
||||
thisObject.peers.push(peer)
|
||||
thisObject.outgoingConnectedPeers.push(peer)
|
||||
}
|
||||
|
||||
function onError(err) {
|
||||
@@ -56,19 +56,19 @@ exports.newNetworkModulesP2PNetworkPeers = function newNetworkModulesP2PNetworkP
|
||||
}
|
||||
|
||||
function onConnectionClosed(webSocketsClientId) {
|
||||
for (let i = 0; i < thisObject.peers.length; i++) {
|
||||
let connectedPeer = thisObject.peers[i]
|
||||
for (let i = 0; i < thisObject.outgoingConnectedPeers.length; i++) {
|
||||
let connectedPeer = thisObject.outgoingConnectedPeers[i]
|
||||
if (connectedPeer.webSocketsClient.id === webSocketsClientId) {
|
||||
thisObject.peers.splice(i, 1)
|
||||
thisObject.outgoingConnectedPeers.splice(i, 1)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isAlreadyAConnectedPeer(peer) {
|
||||
for (let i = 0; i < thisObject.peers.length; i++) {
|
||||
let connectedPeer = thisObject.peers[i]
|
||||
function isOutgoingConnectedPeer(peer) {
|
||||
for (let i = 0; i < thisObject.outgoingConnectedPeers.length; i++) {
|
||||
let connectedPeer = thisObject.outgoingConnectedPeers[i]
|
||||
if (connectedPeer.p2pNetworkNode.node.id === peer.p2pNetworkNode.node.id) {
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user