Removed the configuration with an App.config file from the HttpServer class
This commit is contained in:
		| @@ -49,6 +49,7 @@ | |||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Reference Include="System" /> |     <Reference Include="System" /> | ||||||
|  |     <Reference Include="System.Configuration" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Compile Include="AssemblyInfo.cs" /> |     <Compile Include="AssemblyInfo.cs" /> | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| using System; | using System; | ||||||
|  | using System.Configuration; | ||||||
| using WebSocketSharp; | using WebSocketSharp; | ||||||
| using WebSocketSharp.Net; | using WebSocketSharp.Net; | ||||||
| using WebSocketSharp.Server; | using WebSocketSharp.Server; | ||||||
| @@ -15,7 +16,7 @@ namespace Example3 | |||||||
|       #if DEBUG |       #if DEBUG | ||||||
|       _httpsv.Log.Level = LogLevel.TRACE; |       _httpsv.Log.Level = LogLevel.TRACE; | ||||||
|       #endif |       #endif | ||||||
|       //_httpsv.RootPath = "../../Public"; |       _httpsv.RootPath = ConfigurationManager.AppSettings ["RootPath"]; | ||||||
|       //_httpsv.Sweeping = false; |       //_httpsv.Sweeping = false; | ||||||
|       _httpsv.AddWebSocketService<Echo> ("/Echo"); |       _httpsv.AddWebSocketService<Echo> ("/Echo"); | ||||||
|       _httpsv.AddWebSocketService<Chat> ("/Chat"); |       _httpsv.AddWebSocketService<Chat> ("/Chat"); | ||||||
| @@ -36,7 +37,7 @@ namespace Example3 | |||||||
|         Console.WriteLine ("  {0}", path); |         Console.WriteLine ("  {0}", path); | ||||||
|       Console.WriteLine (); |       Console.WriteLine (); | ||||||
|  |  | ||||||
|       Console.WriteLine("Press enter key to stop server..."); |       Console.WriteLine ("Press enter key to stop the server..."); | ||||||
|       Console.ReadLine (); |       Console.ReadLine (); | ||||||
|  |  | ||||||
|       _httpsv.Stop ();        |       _httpsv.Stop ();        | ||||||
|   | |||||||
| @@ -28,38 +28,21 @@ | |||||||
|  |  | ||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Configuration; |  | ||||||
| using System.Diagnostics; | using System.Diagnostics; | ||||||
| using System.IO; | using System.IO; | ||||||
| using System.Threading; | using System.Threading; | ||||||
| using WebSocketSharp.Net; | using WebSocketSharp.Net; | ||||||
|  |  | ||||||
| namespace WebSocketSharp.Server { | namespace WebSocketSharp.Server | ||||||
|  | { | ||||||
|   /// <summary> |   /// <summary> | ||||||
|   /// Provides a simple HTTP server that allows to accept the WebSocket connection requests. |   /// Provides a simple HTTP server that allows to accept the WebSocket connection requests. | ||||||
|   /// </summary> |   /// </summary> | ||||||
|   /// <remarks> |   /// <remarks> | ||||||
|   /// <para> |  | ||||||
|   /// The HttpServer instance can provide the multi WebSocket services. |   /// The HttpServer instance can provide the multi WebSocket services. | ||||||
|   /// </para> |  | ||||||
|   /// <para> |  | ||||||
|   /// <para> |  | ||||||
|   /// The HttpServer instance can set the document root path of server using |  | ||||||
|   /// the application configuration file or <see cref="RootPath"/> property. |  | ||||||
|   /// </para> |  | ||||||
|   /// <code lang="xml"> |  | ||||||
|   /// <?xml version="1.0" encoding="utf-8"?> |  | ||||||
|   /// <configuration> |  | ||||||
|   ///   <appSettings> |  | ||||||
|   ///     <add key="RootPath" value="./Public" /> |  | ||||||
|   ///   </appSettings> |  | ||||||
|   /// </configuration> |  | ||||||
|   /// </code> |  | ||||||
|   /// </para> |  | ||||||
|   /// </remarks> |   /// </remarks> | ||||||
|   public class HttpServer { |   public class HttpServer | ||||||
|  |   { | ||||||
|     #region Private Fields |     #region Private Fields | ||||||
|  |  | ||||||
|     private HttpListener       _listener; |     private HttpListener       _listener; | ||||||
| @@ -118,7 +101,7 @@ namespace WebSocketSharp.Server { | |||||||
|     /// </summary> |     /// </summary> | ||||||
|     /// <remarks> |     /// <remarks> | ||||||
|     /// The default logging level is the <see cref="LogLevel.ERROR"/>. |     /// The default logging level is the <see cref="LogLevel.ERROR"/>. | ||||||
|     /// If you wanted to change the current logging level, you would set the <c>Log.Level</c> property |     /// If you want to change the current logging level, you set the <c>Log.Level</c> property | ||||||
|     /// to one of the <see cref="LogLevel"/> values which you want. |     /// to one of the <see cref="LogLevel"/> values which you want. | ||||||
|     /// </remarks> |     /// </remarks> | ||||||
|     /// <value> |     /// <value> | ||||||
| @@ -146,9 +129,8 @@ namespace WebSocketSharp.Server { | |||||||
|     /// Gets or sets the document root path of server. |     /// Gets or sets the document root path of server. | ||||||
|     /// </summary> |     /// </summary> | ||||||
|     /// <value> |     /// <value> | ||||||
|     /// An <see cref="string"/> that contains the document root path of server. |     /// A <see cref="string"/> that contains the document root path of server. | ||||||
|     /// The default value is set from the application configuration file if is available; |     /// The default value is <c>./Public</c>. | ||||||
|     /// otherwise, <c>./Public</c>. |  | ||||||
|     /// </value> |     /// </value> | ||||||
|     public string RootPath { |     public string RootPath { | ||||||
|       get { |       get { | ||||||
| @@ -259,7 +241,7 @@ namespace WebSocketSharp.Server { | |||||||
|       _listener = new HttpListener (); |       _listener = new HttpListener (); | ||||||
|       _listening = false; |       _listening = false; | ||||||
|       _logger = new Logger (); |       _logger = new Logger (); | ||||||
|       _rootPath = getRootPath(); |       _rootPath = "./Public"; | ||||||
|       _svcHosts = new ServiceHostManager (); |       _svcHosts = new ServiceHostManager (); | ||||||
|  |  | ||||||
|       _windows = false; |       _windows = false; | ||||||
| @@ -267,25 +249,10 @@ namespace WebSocketSharp.Server { | |||||||
|       if (os.Platform != PlatformID.Unix && os.Platform != PlatformID.MacOSX) |       if (os.Platform != PlatformID.Unix && os.Platform != PlatformID.MacOSX) | ||||||
|         _windows = true; |         _windows = true; | ||||||
|  |  | ||||||
|       var prefix = String.Format( |       var prefix = String.Format ("http{0}://*:{1}/", _port == 443 ? "s" : "", _port); | ||||||
|         "http{0}://*:{1}/", _port == 443 ? "s" : String.Empty, _port); |  | ||||||
|       _listener.Prefixes.Add (prefix); |       _listener.Prefixes.Add (prefix); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private static string getRootPath() |  | ||||||
|     { |  | ||||||
|       string rootPath = null; |  | ||||||
|       try { |  | ||||||
|         rootPath = ConfigurationManager.AppSettings["RootPath"]; |  | ||||||
|       } |  | ||||||
|       catch { |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       return rootPath.IsNullOrEmpty() |  | ||||||
|              ? "./Public" |  | ||||||
|              : rootPath; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void processHttpRequest (HttpListenerContext context) |     private void processHttpRequest (HttpListenerContext context) | ||||||
|     { |     { | ||||||
|       var eventArgs = new HttpRequestEventArgs (context); |       var eventArgs = new HttpRequestEventArgs (context); | ||||||
| @@ -367,10 +334,9 @@ namespace WebSocketSharp.Server { | |||||||
|  |  | ||||||
|     private void processRequestAsync (HttpListenerContext context) |     private void processRequestAsync (HttpListenerContext context) | ||||||
|     { |     { | ||||||
|       WaitCallback callback = (state) => |       WaitCallback callback = state => | ||||||
|       { |  | ||||||
|         try |  | ||||||
|       { |       { | ||||||
|  |         try { | ||||||
|           if (context.Request.IsUpgradeTo ("websocket")) |           if (context.Request.IsUpgradeTo ("websocket")) | ||||||
|           { |           { | ||||||
|             if (processWebSocketRequest (context)) |             if (processWebSocketRequest (context)) | ||||||
| @@ -383,8 +349,7 @@ namespace WebSocketSharp.Server { | |||||||
|  |  | ||||||
|           context.Response.Close (); |           context.Response.Close (); | ||||||
|         } |         } | ||||||
|         catch (Exception ex) |         catch (Exception ex) { | ||||||
|         { |  | ||||||
|           _logger.Fatal (ex.Message); |           _logger.Fatal (ex.Message); | ||||||
|           error ("An exception has occured."); |           error ("An exception has occured."); | ||||||
|         } |         } | ||||||
| @@ -397,17 +362,14 @@ namespace WebSocketSharp.Server { | |||||||
|     { |     { | ||||||
|       while (true) |       while (true) | ||||||
|       { |       { | ||||||
|         try |         try { | ||||||
|         { |  | ||||||
|           processRequestAsync (_listener.GetContext ()); |           processRequestAsync (_listener.GetContext ()); | ||||||
|         } |         } | ||||||
|         catch (HttpListenerException) |         catch (HttpListenerException) { | ||||||
|         { |           _logger.Info ("HttpListener has been stopped."); | ||||||
|           // HttpListener has been closed. |  | ||||||
|           break; |           break; | ||||||
|         } |         } | ||||||
|         catch (Exception ex) |         catch (Exception ex) { | ||||||
|         { |  | ||||||
|           _logger.Fatal (ex.Message); |           _logger.Fatal (ex.Message); | ||||||
|           error ("An exception has occured."); |           error ("An exception has occured."); | ||||||
|  |  | ||||||
| @@ -428,7 +390,7 @@ namespace WebSocketSharp.Server { | |||||||
|     #region Public Methods |     #region Public Methods | ||||||
|  |  | ||||||
|     /// <summary> |     /// <summary> | ||||||
|     /// Adds the specified type WebSocket service. |     /// Adds the specified typed WebSocket service. | ||||||
|     /// </summary> |     /// </summary> | ||||||
|     /// <param name="absPath"> |     /// <param name="absPath"> | ||||||
|     /// A <see cref="string"/> that contains an absolute path associated with the WebSocket service. |     /// A <see cref="string"/> that contains an absolute path associated with the WebSocket service. | ||||||
|   | |||||||
| @@ -59,7 +59,6 @@ | |||||||
|     <Reference Include="System" /> |     <Reference Include="System" /> | ||||||
|     <Reference Include="System.Core" /> |     <Reference Include="System.Core" /> | ||||||
|     <Reference Include="System.ServiceModel" /> |     <Reference Include="System.ServiceModel" /> | ||||||
|     <Reference Include="System.Configuration" /> |  | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Compile Include="AssemblyInfo.cs" /> |     <Compile Include="AssemblyInfo.cs" /> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user