From 3e70e190ddb7837a99646c9d6a354d2439728094 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 8 Apr 2016 10:57:37 +0530 Subject: [PATCH] Workaround for broken websocket ping/pong implementation in browsers Now use a normal message to keep the connection alive. Avoids the annoying error messages in the console when the browser times out the connection. --- resources/content-server/autoreload.js | 2 +- src/calibre/srv/auto_reload.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/content-server/autoreload.js b/resources/content-server/autoreload.js index b2deb101c2..13ab18902f 100644 --- a/resources/content-server/autoreload.js +++ b/resources/content-server/autoreload.js @@ -33,7 +33,7 @@ }; self.ws.onmessage = function(event) { - console.log('Received mesasge from reload server: ' + event.data); + if (event.data !== 'ping') console.log('Received mesasge from reload server: ' + event.data); if (event.data === 'reload') window.location.reload(true); }; diff --git a/src/calibre/srv/auto_reload.py b/src/calibre/srv/auto_reload.py index bdd87e4b39..34d3c4d8bf 100644 --- a/src/calibre/srv/auto_reload.py +++ b/src/calibre/srv/auto_reload.py @@ -253,7 +253,7 @@ class Worker(object): def ping_thread(self): while True: self.server.ping() - time.sleep(0.9 * self.connection_timeout) + time.sleep(30) def __enter__(self): self.restart() @@ -341,7 +341,7 @@ class ReloadHandler(DummyHandler): for connref in self.connections.itervalues(): conn = connref() if conn is not None and conn.ready: - conn.send_websocket_ping() + conn.send_websocket_message('ping') class ReloadServer(Thread):