Selaa lähdekoodia

Moved some web socket classes to the model

Luke Pulverenti 12 vuotta sitten
vanhempi
sitoutus
a6c9fdd0f2

+ 0 - 2
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -87,8 +87,6 @@
     <Compile Include="Net\MimeTypes.cs" />
     <Compile Include="Net\MimeTypes.cs" />
     <Compile Include="Net\UdpMessageReceivedEventArgs.cs" />
     <Compile Include="Net\UdpMessageReceivedEventArgs.cs" />
     <Compile Include="Net\WebSocketConnectEventArgs.cs" />
     <Compile Include="Net\WebSocketConnectEventArgs.cs" />
-    <Compile Include="Net\WebSocketMessageType.cs" />
-    <Compile Include="Net\WebSocketState.cs" />
     <Compile Include="Plugins\IPlugin.cs" />
     <Compile Include="Plugins\IPlugin.cs" />
     <Compile Include="Plugins\IUIPlugin.cs" />
     <Compile Include="Plugins\IUIPlugin.cs" />
     <Compile Include="Progress\ActionableProgress.cs" />
     <Compile Include="Progress\ActionableProgress.cs" />

+ 1 - 0
MediaBrowser.Common/Net/BasePeriodicWebSocketListener.cs

@@ -4,6 +4,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Model.Net;
 
 
 namespace MediaBrowser.Common.Net
 namespace MediaBrowser.Common.Net
 {
 {

+ 1 - 0
MediaBrowser.Common/Net/IWebSocket.cs

@@ -1,6 +1,7 @@
 using System;
 using System;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Model.Net;
 
 
 namespace MediaBrowser.Common.Net
 namespace MediaBrowser.Common.Net
 {
 {

+ 1 - 0
MediaBrowser.Common/Net/IWebSocketConnection.cs

@@ -1,6 +1,7 @@
 using System;
 using System;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Model.Net;
 
 
 namespace MediaBrowser.Common.Net
 namespace MediaBrowser.Common.Net
 {
 {

+ 2 - 0
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -46,6 +46,8 @@
     <Compile Include="Dto\ChapterInfoDto.cs" />
     <Compile Include="Dto\ChapterInfoDto.cs" />
     <Compile Include="Dto\IItemDto.cs" />
     <Compile Include="Dto\IItemDto.cs" />
     <Compile Include="Entities\IByReferenceItem.cs" />
     <Compile Include="Entities\IByReferenceItem.cs" />
+    <Compile Include="Net\WebSocketMessageType.cs" />
+    <Compile Include="Net\WebSocketState.cs" />
     <Compile Include="Querying\ItemsByNameQuery.cs" />
     <Compile Include="Querying\ItemsByNameQuery.cs" />
     <Compile Include="Entities\BaseItemInfo.cs" />
     <Compile Include="Entities\BaseItemInfo.cs" />
     <Compile Include="Connectivity\ClientConnectionInfo.cs" />
     <Compile Include="Connectivity\ClientConnectionInfo.cs" />

+ 2 - 2
MediaBrowser.Common/Net/WebSocketMessageType.cs → MediaBrowser.Model/Net/WebSocketMessageType.cs

@@ -1,5 +1,5 @@
 
 
-namespace MediaBrowser.Common.Net
+namespace MediaBrowser.Model.Net
 {
 {
     /// <summary>
     /// <summary>
     /// Enum WebSocketMessageType
     /// Enum WebSocketMessageType
@@ -17,6 +17,6 @@ namespace MediaBrowser.Common.Net
         /// <summary>
         /// <summary>
         /// The close
         /// The close
         /// </summary>
         /// </summary>
-        Close,
+        Close
     }
     }
 }
 }

+ 1 - 1
MediaBrowser.Common/Net/WebSocketState.cs → MediaBrowser.Model/Net/WebSocketState.cs

@@ -1,5 +1,5 @@
 
 
-namespace MediaBrowser.Common.Net
+namespace MediaBrowser.Model.Net
 {
 {
     /// <summary>
     /// <summary>
     /// Enum WebSocketState
     /// Enum WebSocketState

+ 3 - 3
MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs

@@ -4,8 +4,8 @@ using System;
 using System.Net.WebSockets;
 using System.Net.WebSockets;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
-using WebSocketMessageType = MediaBrowser.Common.Net.WebSocketMessageType;
-using WebSocketState = MediaBrowser.Common.Net.WebSocketState;
+using WebSocketMessageType = MediaBrowser.Model.Net.WebSocketMessageType;
+using WebSocketState = MediaBrowser.Model.Net.WebSocketState;
 
 
 namespace MediaBrowser.Server.Implementations.HttpServer
 namespace MediaBrowser.Server.Implementations.HttpServer
 {
 {
@@ -83,7 +83,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
                 }
                 }
                 catch (WebSocketException ex)
                 catch (WebSocketException ex)
                 {
                 {
-                    _logger.ErrorException("Error reveiving web socket message", ex);
+                    _logger.ErrorException("Error receiving web socket message", ex);
 
 
                     break;
                     break;
                 }
                 }

+ 1 - 0
MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs

@@ -3,6 +3,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Net;
 using MediaBrowser.Model.Serialization;
 using MediaBrowser.Model.Serialization;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;

+ 1 - 0
MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs

@@ -1,5 +1,6 @@
 using MediaBrowser.Common.Net;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Net;
 using MediaBrowser.Model.Serialization;
 using MediaBrowser.Model.Serialization;
 using System;
 using System;
 using System.IO;
 using System.IO;

+ 1 - 0
MediaBrowser.Server.Implementations/WebSocket/AlchemyWebSocket.cs

@@ -5,6 +5,7 @@ using System;
 using System.Text;
 using System.Text;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Model.Net;
 
 
 namespace MediaBrowser.Server.Implementations.WebSocket
 namespace MediaBrowser.Server.Implementations.WebSocket
 {
 {

+ 73 - 63
MediaBrowser.WebDashboard/ApiClient.js

@@ -1,54 +1,4 @@
-(function (jQuery, window, undefined) {
-    "use strict";
-
-    var matched, browser;
-
-    jQuery.uaMatch = function (ua) {
-        ua = ua.toLowerCase();
-
-        var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
-            /(webkit)[ \/]([\w.]+)/.exec(ua) ||
-            /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
-            /(msie) ([\w.]+)/.exec(ua) ||
-            ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
-            [];
-
-        var platform_match = /(ipad)/.exec(ua) ||
-            /(iphone)/.exec(ua) ||
-            /(android)/.exec(ua) ||
-            [];
-
-        return {
-            browser: match[1] || "",
-            version: match[2] || "0",
-            platform: platform_match[0] || ""
-        };
-    };
-
-    matched = jQuery.uaMatch(window.navigator.userAgent);
-    browser = {};
-
-    if (matched.browser) {
-        browser[matched.browser] = true;
-        browser.version = matched.version;
-    }
-
-    if (matched.platform) {
-        browser[matched.platform] = true
-    }
-
-    // Chrome is Webkit, but Webkit is also Safari.
-    if (browser.chrome) {
-        browser.webkit = true;
-    } else if (browser.webkit) {
-        browser.safari = true;
-    }
-
-    jQuery.browser = browser;
-
-})(jQuery, window);
-
-if (!window.MediaBrowser) {
+if (!window.MediaBrowser) {
     window.MediaBrowser = {};
     window.MediaBrowser = {};
 }
 }
 
 
@@ -63,6 +13,16 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
      */
      */
     return function (serverProtocol, serverHostName, serverPortNumber, clientName) {
     return function (serverProtocol, serverHostName, serverPortNumber, clientName) {
 
 
+        if (!serverProtocol) {
+            throw new Error("Must supply a serverProtocol, e.g. http:");
+        }
+        if (!serverHostName) {
+            throw new Error("Must supply serverHostName, e.g. 192.168.1.1 or myServerName");
+        }
+        if (!serverPortNumber) {
+            throw new Error("Must supply a serverPortNumber");
+        }
+
         var self = this;
         var self = this;
         var deviceName = "Web Browser";
         var deviceName = "Web Browser";
         var deviceId = MediaBrowser.SHA1(navigator.userAgent + (navigator.cpuClass || ""));
         var deviceId = MediaBrowser.SHA1(navigator.userAgent + (navigator.cpuClass || ""));
@@ -113,10 +73,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
             else if ($.browser.msie) {
             else if ($.browser.msie) {
                 name = "Internet Explorer";
                 name = "Internet Explorer";
             }
             }
-            else if ($.browser.firefox) {
-                name = "Firefox";
-            }
-            else if ($.browser.mozilla) {
+            else if ($.browser.firefox || $.browser.mozilla) {
                 name = "Firefox";
                 name = "Firefox";
             }
             }
             else if ($.browser.opera) {
             else if ($.browser.opera) {
@@ -147,15 +104,18 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
                 throw new Error("Request cannot be null");
                 throw new Error("Request cannot be null");
             }
             }
 
 
-            var auth = 'MediaBrowser Client="' + clientName + '", Device="' + deviceName + '", DeviceId="' + deviceId + '"';
+            if (clientName) {
 
 
-            if (currentUserId) {
-                auth += ', UserId="' + currentUserId + '"';
-            }
+                var auth = 'MediaBrowser Client="' + clientName + '", Device="' + deviceName + '", DeviceId="' + deviceId + '"';
 
 
-            request.headers = {
-                Authorization: auth
-            };
+                if (currentUserId) {
+                    auth += ', UserId="' + currentUserId + '"';
+                }
+
+                request.headers = {
+                    Authorization: auth
+                };
+            }
 
 
             return $.ajax(request);
             return $.ajax(request);
         };
         };
@@ -1933,4 +1893,54 @@ MediaBrowser.SHA1 = function (msg) {
     var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
     var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
 
 
     return temp.toLowerCase();
     return temp.toLowerCase();
-};
+};
+
+(function (jQuery, window, undefined) {
+    "use strict";
+
+    var matched, browser;
+
+    jQuery.uaMatch = function (ua) {
+        ua = ua.toLowerCase();
+
+        var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
+            /(webkit)[ \/]([\w.]+)/.exec(ua) ||
+            /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
+            /(msie) ([\w.]+)/.exec(ua) ||
+            ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
+            [];
+
+        var platform_match = /(ipad)/.exec(ua) ||
+            /(iphone)/.exec(ua) ||
+            /(android)/.exec(ua) ||
+            [];
+
+        return {
+            browser: match[1] || "",
+            version: match[2] || "0",
+            platform: platform_match[0] || ""
+        };
+    };
+
+    matched = jQuery.uaMatch(window.navigator.userAgent);
+    browser = {};
+
+    if (matched.browser) {
+        browser[matched.browser] = true;
+        browser.version = matched.version;
+    }
+
+    if (matched.platform) {
+        browser[matched.platform] = true
+    }
+
+    // Chrome is Webkit, but Webkit is also Safari.
+    if (browser.chrome) {
+        browser.webkit = true;
+    } else if (browser.webkit) {
+        browser.safari = true;
+    }
+
+    jQuery.browser = browser;
+
+})(jQuery, window);

+ 1 - 1
MediaBrowser.WebDashboard/packages.config

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
 <packages>
-  <package id="MediaBrowser.ApiClient.Javascript" version="3.0.65" targetFramework="net45" />
+  <package id="MediaBrowser.ApiClient.Javascript" version="3.0.67" targetFramework="net45" />
   <package id="ServiceStack.Common" version="3.9.42" targetFramework="net45" />
   <package id="ServiceStack.Common" version="3.9.42" targetFramework="net45" />
   <package id="ServiceStack.Text" version="3.9.42" targetFramework="net45" />
   <package id="ServiceStack.Text" version="3.9.42" targetFramework="net45" />
 </packages>
 </packages>