From 0ca35deb6e1d2cc7e51cd07992f4b31d4ef863f8 Mon Sep 17 00:00:00 2001 From: DeSqBlocki Date: Mon, 10 Feb 2025 17:27:53 +0100 Subject: [PATCH] funky reconnect when losing internet --- events/Twitch/Disconnected.js | 14 ++++---------- events/Twitch/EventSub.js | 5 +++++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/events/Twitch/Disconnected.js b/events/Twitch/Disconnected.js index abc9bfa..adf397e 100644 --- a/events/Twitch/Disconnected.js +++ b/events/Twitch/Disconnected.js @@ -1,6 +1,7 @@ // Event triggered by client connected to server -const { tClient, mClient } = require("../.."); +const { mClient, dClient } = require("../.."); +var { tClient } = require('../..') const { refreshAccessToken } = require("../../functions") const tmi = require('tmi.js') @@ -13,13 +14,6 @@ module.exports = { try { await refreshAccessToken(); console.log('Reinitializing Twitch client after token refresh...'); - - try { - await tClient.disconnect(); - } catch (err) { - console.warn('Twitch client already disconnected:', err.message); - } - const db = mClient.db("clients"); const credentialCollection = db.collection('credentials'); const tCreds = await credentialCollection.findOne({ service: 'twitch' }); @@ -34,8 +28,8 @@ module.exports = { }, channels: tClient.channels, }); - - await tClient.connect(); + const { address, port } = await tClient.connect() + dClient.emit("Twitch/Connected", address, port) console.log('Twitch client reconnected successfully.'); } catch (error) { console.error('Failed to refresh token and reconnect:', error); diff --git a/events/Twitch/EventSub.js b/events/Twitch/EventSub.js index 96defc7..38d7fc2 100644 --- a/events/Twitch/EventSub.js +++ b/events/Twitch/EventSub.js @@ -12,6 +12,7 @@ module.exports = { name: 'Twitch/EventSub', once: false, async execute() { + console.log('Starting Event Subs...') const endpoint = `wss://eventsub.wss.twitch.tv/ws` const db = mClient.db('clients') @@ -38,6 +39,9 @@ module.exports = { } function onDisconnect(reason) { console.log(`Disconnecting due to reason`, reason) + if(connection.readyState === connection.OPEN){ + connection.close(4003, 'manual disconnect') + } } function connect() { connection = new ReconnectingWebSocket(endpoint, [], { @@ -88,6 +92,7 @@ module.exports = { subscriptionPayload, { headers: headers }) + console.log(res) console.log(`Subscribed to ${type}`) subscribedEvents[type] = listener return true