From b1b3a280a49813c0c1008c4cf410c12b520c02f6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 9 Sep 2013 14:23:55 -0400 Subject: [PATCH] improve web socket close --- MediaBrowser.WebDashboard/ApiClient.js | 28 ++++++++++------------- MediaBrowser.WebDashboard/packages.config | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js index 66bf342488..7db97e6603 100644 --- a/MediaBrowser.WebDashboard/ApiClient.js +++ b/MediaBrowser.WebDashboard/ApiClient.js @@ -27,14 +27,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi var currentUserId; var webSocket; - $(window).on("beforeunload", function () { - - // Close the connection gracefully when possible - if (webSocket && webSocket.readyState === WebSocket.OPEN) { - webSocket.close(); - } - }); - /** * Gets the server host name. */ @@ -195,6 +187,12 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; }; + self.closeWebSocket = function () { + if (webSocket && webSocket.readyState === WebSocket.OPEN) { + webSocket.close(); + } + }; + self.sendWebSocketMessage = function (name, data) { var msg = { MessageType: name }; @@ -3427,17 +3425,15 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi throw new Error("null itemId"); } - // Always use the http api in case playback is stopped by closing the browser - // See window beforeunload event at the top of this file - //if (self.isWebSocketOpen()) { + if (self.isWebSocketOpen()) { - // var deferred = $.Deferred(); + var deferred = $.Deferred(); - // self.sendWebSocketMessage("PlaybackStopped", itemId + "|" + (positionTicks == null ? "" : positionTicks)); + self.sendWebSocketMessage("PlaybackStopped", itemId + "|" + (positionTicks == null ? "" : positionTicks)); - // deferred.resolveWith(null, []); - // return deferred.promise(); - //} + deferred.resolveWith(null, []); + return deferred.promise(); + } var params = { }; diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 21812f626b..b3add5674e 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file