From c171906b031204e04d46823edf8e2789b4e113e5 Mon Sep 17 00:00:00 2001 From: bobbydigitales Date: Fri, 30 May 2025 19:13:40 -0700 Subject: [PATCH] Consider the boostrap peer as a real peer for reconnect purposes. We really need more intelligent syncing overall. --- src/PeerManager.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/PeerManager.ts b/src/PeerManager.ts index e203939..493c0e3 100644 --- a/src/PeerManager.ts +++ b/src/PeerManager.ts @@ -44,7 +44,7 @@ export class PeerManager { messageSuperlog = false; watchdogInterval: number = 0; reconnectTimer: number | null = null; - peerStateSuperlog: boolean = false; + peerStateSuperlog: boolean = true; // async watchdog() { // // Check that we're connected to at least N peers. If not, reconnect to the bootstrap server. @@ -293,7 +293,7 @@ export class PeerManager { let numActive = 0; for (let [id, peer] of this.peers) { - if (id === this.bootstrapPeerID || + if (/*id === this.bootstrapPeerID ||*/ peer.rtcPeer?.connectionState === "new" || peer.rtcPeer?.connectionState === "connecting" ) { @@ -396,11 +396,11 @@ export class PeerManager { } } - onPeerDisconnected(remotePeerID: PeerID) { - let deleted = this.peers.delete(remotePeerID); + onPeerDisconnected(peerID: PeerID) { + let deleted = this.peers.delete(peerID); if (!deleted) { - throw new Error(`Can't find peer that disconnected ${remotePeerID}`); + throw new Error(`Can't find peer that disconnected ${peerID}`); } // TODO: What do we do if we lose connection to the bootstrap peer? @@ -409,12 +409,14 @@ export class PeerManager { // We should disconnect from the websocket once we connect to our intial peers. // If we have no peer connections, try to connect. If connection fails, start a timer to reconnect. - if (remotePeerID === this.bootstrapPeerID) { + if (peerID === this.bootstrapPeerID) { this.bootstrapPeerID = null; this.bootstrapPeerConnection = null; } - this.dispatchEvent(PeerEventTypes.PEER_DISCONNECTED, { peerID: remotePeerID }); + this.peerStateSuperlog && console.log.apply(null, log(`PeerManager: disconnected from peer ${peerID}`)); + + this.dispatchEvent(PeerEventTypes.PEER_DISCONNECTED, { peerID: peerID }); } @@ -518,8 +520,8 @@ class PeerConnection { static config = { iceServers: [ { urls: "stun:ddln.app" }, - { urls: "turn:ddln.app", username: "a", credential: "b" }, - { urls: "stun:stun.l.google.com" }, // keeping this for now as my STUN server is not returning ipv6 + // { urls: "turn:ddln.app", username: "a", credential: "b" }, + // { urls: "stun:stun.l.google.com" }, // keeping this for now as my STUN server is not returning ipv6 // { urls: "stun:stun1.l.google.com" }, // { urls: "stun:stun2.l.google.com" }, // { urls: "stun:stun3.l.google.com" },