Moved some web socket classes to the model

This commit is contained in:
Luke Pulverenti 2013-03-25 23:01:47 -04:00
parent 3a5e1521ed
commit a6c9fdd0f2
13 changed files with 88 additions and 72 deletions

View File

@ -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" />

View File

@ -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
{ {

View File

@ -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
{ {

View File

@ -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
{ {

View File

@ -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" />

View File

@ -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
} }
} }

View File

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

View File

@ -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 WebSocketMessageType = MediaBrowser.Model.Net.WebSocketMessageType;
using WebSocketState = MediaBrowser.Common.Net.WebSocketState; 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;
} }

View File

@ -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;

View File

@ -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;

View File

@ -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
{ {

View File

@ -1,54 +1,4 @@
(function (jQuery, window, undefined) { if (!window.MediaBrowser) {
"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) {
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) { else if ($.browser.firefox || $.browser.mozilla) {
name = "Firefox";
}
else if ($.browser.mozilla) {
name = "Firefox"; name = "Firefox";
} }
else if ($.browser.opera) { else if ($.browser.opera) {
@ -147,16 +104,19 @@ 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) { var auth = 'MediaBrowser Client="' + clientName + '", Device="' + deviceName + '", DeviceId="' + deviceId + '"';
auth += ', UserId="' + currentUserId + '"';
if (currentUserId) {
auth += ', UserId="' + currentUserId + '"';
}
request.headers = {
Authorization: auth
};
} }
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);

View File

@ -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>