فهرست منبع

improved messages with startup failures

Luke Pulverenti 11 سال پیش
والد
کامیت
755d98edc0

+ 12 - 2
MediaBrowser.Common/Net/IServerManager.cs

@@ -5,6 +5,9 @@ using System.Threading.Tasks;
 
 namespace MediaBrowser.Common.Net
 {
+    /// <summary>
+    /// Interface IServerManager
+    /// </summary>
     public interface IServerManager : IDisposable
     {
         /// <summary>
@@ -22,7 +25,14 @@ namespace MediaBrowser.Common.Net
         /// <summary>
         /// Starts this instance.
         /// </summary>
-        void Start();
+        /// <param name="urlPrefix">The URL prefix.</param>
+        /// <param name="enableHttpLogging">if set to <c>true</c> [enable HTTP logging].</param>
+        void Start(string urlPrefix, bool enableHttpLogging);
+
+        /// <summary>
+        /// Starts the web socket server.
+        /// </summary>
+        void StartWebSocketServer();
 
         /// <summary>
         /// Sends a message to all clients currently connected via a web socket
@@ -62,7 +72,7 @@ namespace MediaBrowser.Common.Net
         /// <param name="cancellationToken">The cancellation token.</param>
         /// <returns>Task.</returns>
         Task SendWebSocketMessageAsync<T>(string messageType, Func<T> dataFunction, IEnumerable<IWebSocketConnection> connections, CancellationToken cancellationToken);
-        
+
         /// <summary>
         /// Adds the web socket listeners.
         /// </summary>

+ 1 - 1
MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs

@@ -529,7 +529,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
                     {
                         new ClientWebSocket();
 
-                        _supportsNativeWebSocket = true;
+                        _supportsNativeWebSocket = false;
                     }
                     catch (PlatformNotSupportedException)
                     {

+ 12 - 22
MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs

@@ -118,43 +118,44 @@ namespace MediaBrowser.Server.Implementations.ServerManager
             _jsonSerializer = jsonSerializer;
             _applicationHost = applicationHost;
             ConfigurationManager = configurationManager;
-
-            ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated;
         }
 
         /// <summary>
         /// Starts this instance.
         /// </summary>
-        public void Start()
+        public void Start(string urlPrefix, bool enableHttpLogging)
         {
-            ReloadHttpServer();
+            ReloadHttpServer(urlPrefix, enableHttpLogging);
+        }
 
+        public void StartWebSocketServer()
+        {
             if (!SupportsNativeWebSocket)
             {
-                ReloadExternalWebSocketServer();
+                ReloadExternalWebSocketServer(ConfigurationManager.Configuration.LegacyWebSocketPortNumber);
             }
         }
 
         /// <summary>
         /// Starts the external web socket server.
         /// </summary>
-        private void ReloadExternalWebSocketServer()
+        private void ReloadExternalWebSocketServer(int portNumber)
         {
             DisposeExternalWebSocketServer();
 
             ExternalWebSocketServer = _applicationHost.Resolve<IWebSocketServer>();
 
-            ExternalWebSocketServer.Start(ConfigurationManager.Configuration.LegacyWebSocketPortNumber);
+            ExternalWebSocketServer.Start(portNumber);
             ExternalWebSocketServer.WebSocketConnected += HttpServer_WebSocketConnected;
         }
 
         /// <summary>
         /// Restarts the Http Server, or starts it if not currently running
         /// </summary>
-        private void ReloadHttpServer()
+        private void ReloadHttpServer(string urlPrefix, bool enableHttpLogging)
         {
             // Only reload if the port has changed, so that we don't disconnect any active users
-            if (HttpServer != null && HttpServer.UrlPrefix.Equals(_applicationHost.HttpServerUrlPrefix, StringComparison.OrdinalIgnoreCase))
+            if (HttpServer != null && HttpServer.UrlPrefix.Equals(urlPrefix, StringComparison.OrdinalIgnoreCase))
             {
                 return;
             }
@@ -166,8 +167,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
             try
             {
                 HttpServer = _applicationHost.Resolve<IHttpServer>();
-                HttpServer.EnableHttpRequestLogging = ConfigurationManager.Configuration.EnableHttpLevelLogging;
-                HttpServer.Start(_applicationHost.HttpServerUrlPrefix);
+                HttpServer.EnableHttpRequestLogging = enableHttpLogging;
+                HttpServer.Start(urlPrefix);
             }
             catch (SocketException ex)
             {
@@ -375,17 +376,6 @@ namespace MediaBrowser.Server.Implementations.ServerManager
             }
         }
 
-        /// <summary>
-        /// Handles the ConfigurationUpdated event of the _kernel control.
-        /// </summary>
-        /// <param name="sender">The source of the event.</param>
-        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
-        /// <exception cref="System.NotImplementedException"></exception>
-        void ConfigurationUpdated(object sender, EventArgs e)
-        {
-            HttpServer.EnableHttpRequestLogging = ConfigurationManager.Configuration.EnableHttpLevelLogging;
-        }
-
         /// <summary>
         /// Adds the web socket listeners.
         /// </summary>

+ 6 - 6
MediaBrowser.Server.Implementations/WebSocket/AlchemyServer.cs

@@ -55,14 +55,14 @@ namespace MediaBrowser.Server.Implementations.WebSocket
         /// <param name="portNumber">The port number.</param>
         public void Start(int portNumber)
         {
-            WebSocketServer = new WebSocketServer(portNumber, IPAddress.Any)
-            {
-                OnConnected = OnAlchemyWebSocketClientConnected,
-                TimeOut = TimeSpan.FromHours(12)
-            };
-
             try
             {
+                WebSocketServer = new WebSocketServer(portNumber, IPAddress.Any)
+                {
+                    OnConnected = OnAlchemyWebSocketClientConnected,
+                    TimeOut = TimeSpan.FromHours(12)
+                };
+
                 WebSocketServer.Start();
             }
             catch (SocketException ex)

+ 7 - 2
MediaBrowser.ServerApplication/ApplicationHost.cs

@@ -1,4 +1,5 @@
-using MediaBrowser.Api;
+using System.Windows.Forms;
+using MediaBrowser.Api;
 using MediaBrowser.Common;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Constants;
@@ -475,7 +476,7 @@ namespace MediaBrowser.ServerApplication
         {
             try
             {
-                ServerManager.Start();
+                ServerManager.Start(HttpServerUrlPrefix, ServerConfigurationManager.Configuration.EnableHttpLevelLogging);
             }
             catch
             {
@@ -490,6 +491,8 @@ namespace MediaBrowser.ServerApplication
                     throw;
                 }
             }
+
+            ServerManager.StartWebSocketServer();
         }
 
         /// <summary>
@@ -501,6 +504,8 @@ namespace MediaBrowser.ServerApplication
         {
             base.OnConfigurationUpdated(sender, e);
 
+            HttpServer.EnableHttpRequestLogging = ServerConfigurationManager.Configuration.EnableHttpLevelLogging;
+            
             if (!string.Equals(HttpServer.UrlPrefix, HttpServerUrlPrefix, StringComparison.OrdinalIgnoreCase))
             {
                 NotifyPendingRestart();