From 9e7c20cf816f95816f542a51cee5588b61b4c061 Mon Sep 17 00:00:00 2001 From: Thomas Lynch Date: Mon, 5 Apr 2021 09:28:17 +0000 Subject: [PATCH] socketio removed ping, now follosing https://socket.io/docs/v3/migrating-from-2-x-to-3-0/#No-more-%E2%80%9Cpong%E2%80%9D-event-for-retrieving-latency --- gulp/res/js/live.js | 15 ++++++++++----- socketio.js | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/gulp/res/js/live.js b/gulp/res/js/live.js index 0cdbe2d6..1f3368f2 100644 --- a/gulp/res/js/live.js +++ b/gulp/res/js/live.js @@ -1,6 +1,7 @@ let liveEnabled = localStorage.getItem('live') == 'true'; let scrollEnabled = localStorage.getItem('scroll') == 'true'; let socket; +let socketPingInterval; let forceUpdate; window.addEventListener('settingsReady', function(event) { //after domcontentloaded @@ -181,10 +182,19 @@ window.addEventListener('settingsReady', function(event) { //after domcontentloa reconnectionDelay: 3000, reconnectionDelayMax: 15000, }); + const socketPing = () => { + const pingStart = Date.now(); + socket.volatile.emit('ping', () => { + const latency = Date.now() - pingStart; + updateLive(`Connected for live posts (${latency}ms)`, '#0de600'); + }); + } socket.on('connect', async () => { console.log('socket connected'); await fetchNewPosts(); socket.emit('room', room); + clearInterval(socketPingInterval); + socketPingInterval = setInterval(socketPing, 10000); }); socket.on('message', (message) => { console.log(message, room); @@ -192,11 +202,6 @@ window.addEventListener('settingsReady', function(event) { //after domcontentloa updateLive('Connected for live posts', '#0de600'); } }); - socket.on('pong', (latency) => { - if (socket.connected) { - updateLive(`Connected for live posts (${latency}ms)`, '#0de600'); - } - }); socket.on('reconnect_attempt', () => { updateLive('Attempting to reconnect...', 'yellow'); }); diff --git a/socketio.js b/socketio.js index 2151e8e8..b957d032 100644 --- a/socketio.js +++ b/socketio.js @@ -26,6 +26,11 @@ module.exports = { startRooms: () => { module.exports.io.on('connection', socket => { + socket.on('ping', cb => { + if (typeof cb === "function") { + cb(); + } + }); socket.on('room', room => { const roomMatch = room.match(roomRegex); if (roomMatch && roomMatch.groups) {