diff --git a/Example3/Example3.csproj b/Example3/Example3.csproj
index ddcf431f..cfb81b7b 100644
--- a/Example3/Example3.csproj
+++ b/Example3/Example3.csproj
@@ -49,6 +49,7 @@
+
diff --git a/Example3/Program.cs b/Example3/Program.cs
index e7103bd6..4dd310bb 100644
--- a/Example3/Program.cs
+++ b/Example3/Program.cs
@@ -1,4 +1,5 @@
using System;
+using System.Configuration;
using WebSocketSharp;
using WebSocketSharp.Net;
using WebSocketSharp.Server;
@@ -9,59 +10,59 @@ namespace Example3
{
private static HttpServer _httpsv;
- public static void Main(string[] args)
+ public static void Main (string [] args)
{
- _httpsv = new HttpServer(4649);
+ _httpsv = new HttpServer (4649);
#if DEBUG
_httpsv.Log.Level = LogLevel.TRACE;
#endif
- //_httpsv.RootPath = "../../Public";
+ _httpsv.RootPath = ConfigurationManager.AppSettings ["RootPath"];
//_httpsv.Sweeping = false;
- _httpsv.AddWebSocketService("/Echo");
- _httpsv.AddWebSocketService("/Chat");
+ _httpsv.AddWebSocketService ("/Echo");
+ _httpsv.AddWebSocketService ("/Chat");
_httpsv.OnGet += (sender, e) =>
{
- onGet(e);
+ onGet (e);
};
_httpsv.OnError += (sender, e) =>
{
- Console.WriteLine(e.Message);
+ Console.WriteLine (e.Message);
};
- _httpsv.Start();
- Console.WriteLine("HTTP Server listening on port: {0} service path:", _httpsv.Port);
+ _httpsv.Start ();
+ Console.WriteLine ("HTTP Server listening on port: {0} service path:", _httpsv.Port);
foreach (var path in _httpsv.ServicePaths)
- Console.WriteLine(" {0}", path);
- Console.WriteLine();
+ Console.WriteLine (" {0}", path);
+ Console.WriteLine ();
- Console.WriteLine("Press enter key to stop server...");
- Console.ReadLine();
+ Console.WriteLine ("Press enter key to stop the server...");
+ Console.ReadLine ();
- _httpsv.Stop();
+ _httpsv.Stop ();
}
- private static byte[] getContent(string path)
+ private static byte [] getContent (string path)
{
if (path == "/")
path += "index.html";
- return _httpsv.GetFile(path);
+ return _httpsv.GetFile (path);
}
- private static void onGet(HttpRequestEventArgs eventArgs)
+ private static void onGet (HttpRequestEventArgs eventArgs)
{
- var request = eventArgs.Request;
+ var request = eventArgs.Request;
var response = eventArgs.Response;
- var content = getContent(request.RawUrl);
+ var content = getContent (request.RawUrl);
if (content != null)
{
- response.WriteContent(content);
+ response.WriteContent (content);
return;
}
- response.StatusCode = (int)HttpStatusCode.NotFound;
+ response.StatusCode = (int) HttpStatusCode.NotFound;
}
}
}
diff --git a/websocket-sharp/Server/HttpServer.cs b/websocket-sharp/Server/HttpServer.cs
index 86b2cfdf..c4f42aae 100644
--- a/websocket-sharp/Server/HttpServer.cs
+++ b/websocket-sharp/Server/HttpServer.cs
@@ -28,38 +28,21 @@
using System;
using System.Collections.Generic;
-using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Threading;
using WebSocketSharp.Net;
-namespace WebSocketSharp.Server {
-
+namespace WebSocketSharp.Server
+{
///
/// Provides a simple HTTP server that allows to accept the WebSocket connection requests.
///
///
- ///
/// The HttpServer instance can provide the multi WebSocket services.
- ///
- ///
- ///
- /// The HttpServer instance can set the document root path of server using
- /// the application configuration file or property.
- ///
- ///
- /// <?xml version="1.0" encoding="utf-8"?>
- /// <configuration>
- /// <appSettings>
- /// <add key="RootPath" value="./Public" />
- /// </appSettings>
- /// </configuration>
- ///
- ///
///
- public class HttpServer {
-
+ public class HttpServer
+ {
#region Private Fields
private HttpListener _listener;
@@ -79,8 +62,8 @@ namespace WebSocketSharp.Server {
/// Initializes a new instance of the class that listens for incoming requests
/// on port 80.
///
- public HttpServer()
- : this(80)
+ public HttpServer ()
+ : this (80)
{
}
@@ -91,10 +74,10 @@ namespace WebSocketSharp.Server {
///
/// An that contains a port number.
///
- public HttpServer(int port)
+ public HttpServer (int port)
{
_port = port;
- init();
+ init ();
}
#endregion
@@ -118,7 +101,7 @@ namespace WebSocketSharp.Server {
///
///
/// The default logging level is the .
- /// If you wanted to change the current logging level, you would set the Log.Level property
+ /// If you want to change the current logging level, you set the Log.Level property
/// to one of the values which you want.
///
///
@@ -146,9 +129,8 @@ namespace WebSocketSharp.Server {
/// Gets or sets the document root path of server.
///
///
- /// An that contains the document root path of server.
- /// The default value is set from the application configuration file if is available;
- /// otherwise, ./Public.
+ /// A that contains the document root path of server.
+ /// The default value is ./Public.
///
public string RootPath {
get {
@@ -249,178 +231,158 @@ namespace WebSocketSharp.Server {
#region Private Methods
- private void error(string message)
+ private void error (string message)
{
- OnError.Emit(this, new ErrorEventArgs(message));
+ OnError.Emit (this, new ErrorEventArgs (message));
}
- private void init()
+ private void init ()
{
- _listener = new HttpListener();
+ _listener = new HttpListener ();
_listening = false;
- _logger = new Logger();
- _rootPath = getRootPath();
- _svcHosts = new ServiceHostManager();
+ _logger = new Logger ();
+ _rootPath = "./Public";
+ _svcHosts = new ServiceHostManager ();
_windows = false;
var os = Environment.OSVersion;
if (os.Platform != PlatformID.Unix && os.Platform != PlatformID.MacOSX)
_windows = true;
- var prefix = String.Format(
- "http{0}://*:{1}/", _port == 443 ? "s" : String.Empty, _port);
- _listener.Prefixes.Add(prefix);
+ var prefix = String.Format ("http{0}://*:{1}/", _port == 443 ? "s" : "", _port);
+ _listener.Prefixes.Add (prefix);
}
- private static string getRootPath()
+ private void processHttpRequest (HttpListenerContext context)
{
- string rootPath = null;
- try {
- rootPath = ConfigurationManager.AppSettings["RootPath"];
- }
- catch {
- }
-
- return rootPath.IsNullOrEmpty()
- ? "./Public"
- : rootPath;
- }
-
- private void processHttpRequest(HttpListenerContext context)
- {
- var eventArgs = new HttpRequestEventArgs(context);
+ var eventArgs = new HttpRequestEventArgs (context);
var method = context.Request.HttpMethod;
if (method == "GET" && OnGet != null)
{
- OnGet(this, eventArgs);
+ OnGet (this, eventArgs);
return;
}
if (method == "HEAD" && OnHead != null)
{
- OnHead(this, eventArgs);
+ OnHead (this, eventArgs);
return;
}
if (method == "POST" && OnPost != null)
{
- OnPost(this, eventArgs);
+ OnPost (this, eventArgs);
return;
}
if (method == "PUT" && OnPut != null)
{
- OnPut(this, eventArgs);
+ OnPut (this, eventArgs);
return;
}
if (method == "DELETE" && OnDelete != null)
{
- OnDelete(this, eventArgs);
+ OnDelete (this, eventArgs);
return;
}
if (method == "OPTIONS" && OnOptions != null)
{
- OnOptions(this, eventArgs);
+ OnOptions (this, eventArgs);
return;
}
if (method == "TRACE" && OnTrace != null)
{
- OnTrace(this, eventArgs);
+ OnTrace (this, eventArgs);
return;
}
if (method == "CONNECT" && OnConnect != null)
{
- OnConnect(this, eventArgs);
+ OnConnect (this, eventArgs);
return;
}
if (method == "PATCH" && OnPatch != null)
{
- OnPatch(this, eventArgs);
+ OnPatch (this, eventArgs);
return;
}
- context.Response.StatusCode = (int)HttpStatusCode.NotImplemented;
+ context.Response.StatusCode = (int) HttpStatusCode.NotImplemented;
}
- private bool processWebSocketRequest(HttpListenerContext context)
+ private bool processWebSocketRequest (HttpListenerContext context)
{
- var wsContext = context.AcceptWebSocket();
- var path = wsContext.Path.UrlDecode();
+ var wsContext = context.AcceptWebSocket ();
+ var path = wsContext.Path.UrlDecode ();
IServiceHost svcHost;
- if (!_svcHosts.TryGetServiceHost(path, out svcHost))
+ if (!_svcHosts.TryGetServiceHost (path, out svcHost))
{
- context.Response.StatusCode = (int)HttpStatusCode.NotImplemented;
+ context.Response.StatusCode = (int) HttpStatusCode.NotImplemented;
return false;
}
wsContext.WebSocket.Log = _logger;
- svcHost.BindWebSocket(wsContext);
+ svcHost.BindWebSocket (wsContext);
return true;
}
- private void processRequestAsync(HttpListenerContext context)
+ private void processRequestAsync (HttpListenerContext context)
{
- WaitCallback callback = (state) =>
+ WaitCallback callback = state =>
{
- try
- {
- if (context.Request.IsUpgradeTo("websocket"))
+ try {
+ if (context.Request.IsUpgradeTo ("websocket"))
{
- if (processWebSocketRequest(context))
+ if (processWebSocketRequest (context))
return;
}
else
{
- processHttpRequest(context);
+ processHttpRequest (context);
}
- context.Response.Close();
+ context.Response.Close ();
}
- catch (Exception ex)
- {
- _logger.Fatal(ex.Message);
- error("An exception has occured.");
+ catch (Exception ex) {
+ _logger.Fatal (ex.Message);
+ error ("An exception has occured.");
}
};
- ThreadPool.QueueUserWorkItem(callback);
+ ThreadPool.QueueUserWorkItem (callback);
}
- private void receiveRequest()
+ private void receiveRequest ()
{
while (true)
{
- try
- {
- processRequestAsync(_listener.GetContext());
+ try {
+ processRequestAsync (_listener.GetContext ());
}
- catch (HttpListenerException)
- {
- // HttpListener has been closed.
+ catch (HttpListenerException) {
+ _logger.Info ("HttpListener has been stopped.");
break;
}
- catch (Exception ex)
- {
- _logger.Fatal(ex.Message);
- error("An exception has occured.");
+ catch (Exception ex) {
+ _logger.Fatal (ex.Message);
+ error ("An exception has occured.");
break;
}
}
}
- private void startReceiveRequestThread()
+ private void startReceiveRequestThread ()
{
- _receiveRequestThread = new Thread(new ThreadStart(receiveRequest));
+ _receiveRequestThread = new Thread (new ThreadStart (receiveRequest));
_receiveRequestThread.IsBackground = true;
- _receiveRequestThread.Start();
+ _receiveRequestThread.Start ();
}
#endregion
@@ -428,7 +390,7 @@ namespace WebSocketSharp.Server {
#region Public Methods
///
- /// Adds the specified type WebSocket service.
+ /// Adds the specified typed WebSocket service.
///
///
/// A that contains an absolute path associated with the WebSocket service.
@@ -436,24 +398,24 @@ namespace WebSocketSharp.Server {
///
/// The type of the WebSocket service. The T must inherit the class.
///
- public void AddWebSocketService(string absPath)
- where T : WebSocketService, new()
+ public void AddWebSocketService (string absPath)
+ where T : WebSocketService, new ()
{
string msg;
- if (!absPath.IsValidAbsolutePath(out msg))
+ if (!absPath.IsValidAbsolutePath (out msg))
{
- _logger.Error(msg);
- error(msg);
+ _logger.Error (msg);
+ error (msg);
return;
}
- var svcHost = new WebSocketServiceHost(_logger);
- svcHost.Uri = absPath.ToUri();
+ var svcHost = new WebSocketServiceHost (_logger);
+ svcHost.Uri = absPath.ToUri ();
if (!Sweeping)
svcHost.Sweeping = false;
- _svcHosts.Add(absPath, svcHost);
+ _svcHosts.Add (absPath, svcHost);
}
///
@@ -466,41 +428,41 @@ namespace WebSocketSharp.Server {
///
/// A that contains a virtual path to the file to get.
///
- public byte[] GetFile(string path)
+ public byte[] GetFile (string path)
{
var filePath = _rootPath + path;
if (_windows)
- filePath = filePath.Replace("/", "\\");
+ filePath = filePath.Replace ("/", "\\");
- return File.Exists(filePath)
- ? File.ReadAllBytes(filePath)
+ return File.Exists (filePath)
+ ? File.ReadAllBytes (filePath)
: null;
}
///
/// Starts to receive the HTTP requests.
///
- public void Start()
+ public void Start ()
{
if (_listening)
return;
- _listener.Start();
- startReceiveRequestThread();
+ _listener.Start ();
+ startReceiveRequestThread ();
_listening = true;
}
///
/// Stops receiving the HTTP requests.
///
- public void Stop()
+ public void Stop ()
{
if (!_listening)
return;
- _listener.Close();
- _receiveRequestThread.Join(5 * 1000);
- _svcHosts.Stop();
+ _listener.Close ();
+ _receiveRequestThread.Join (5 * 1000);
+ _svcHosts.Stop ();
_listening = false;
}
diff --git a/websocket-sharp/websocket-sharp.csproj b/websocket-sharp/websocket-sharp.csproj
index 89f2c54d..03218c28 100644
--- a/websocket-sharp/websocket-sharp.csproj
+++ b/websocket-sharp/websocket-sharp.csproj
@@ -59,7 +59,6 @@
-