diff --git a/src/octoprint/static/js/app/dataupdater.js b/src/octoprint/static/js/app/dataupdater.js index d547a16c..73a4a6d2 100644 --- a/src/octoprint/static/js/app/dataupdater.js +++ b/src/octoprint/static/js/app/dataupdater.js @@ -22,6 +22,7 @@ function DataUpdater(allViewModels) { }; self.reconnect = function() { + self._socket.close(); delete self._socket; self.connect(); }; @@ -31,7 +32,10 @@ function DataUpdater(allViewModels) { self._autoReconnectTrial = 0; }; - self._onclose = function() { + self._onclose = function(e) { + if (e.code == SOCKJS_CLOSE_NORMAL) { + return; + } if (self._autoReconnectTrial >= self._autoReconnectDialogIndex) { // Only consider it a real disconnect if the trial number has exceeded our threshold. diff --git a/src/octoprint/templates/initscript.jinja2 b/src/octoprint/templates/initscript.jinja2 index 2351db39..4d8094a8 100644 --- a/src/octoprint/templates/initscript.jinja2 +++ b/src/octoprint/templates/initscript.jinja2 @@ -20,6 +20,8 @@ var SOCKJS_URI = "{{ url_for('index') }}" + "sockjs"; var SOCKJS_DEBUG = CONFIG_DEBUG; + // sockjs should define CLOSE_NORMAL for us, but they don't (from ws spec) + var SOCKJS_CLOSE_NORMAL = 1000 var UI_API_KEY = "{{ uiApiKey }}"; var VERSION = "{{ version }}";