diff --git a/README.md b/README.md index d6d7e558..472f8c31 100644 --- a/README.md +++ b/README.md @@ -11,22 +11,22 @@ using System; using WebSocketSharp; -namespace Example { - - public class Program { - - public static void Main(string[] args) +namespace Example +{ + public class Program + { + public static void Main (string [] args) { - using (var ws = new WebSocket("ws://dragonsnest.far/Laputa")) + using (var ws = new WebSocket ("ws://dragonsnest.far/Laputa")) { ws.OnMessage += (sender, e) => { - Console.WriteLine("Laputa says: {0}", e.Data); + Console.WriteLine ("Laputa says: {0}", e.Data); }; - ws.Connect(); - ws.Send("BALUS"); - Console.ReadKey(true); + ws.Connect (); + ws.Send ("BALUS"); + Console.ReadKey (true); } } } @@ -48,7 +48,7 @@ The `WebSocket` class exists in the `WebSocketSharp` namespace. Creating a instance of the `WebSocket` class with the specified WebSocket URL to connect. ```cs -using (var ws = new WebSocket("ws://example.com")) +using (var ws = new WebSocket ("ws://example.com")) { ... } @@ -84,11 +84,11 @@ ws.OnMessage += (sender, e) => }; ``` -`e.Type` (`WebSocketSharp.MessageEventArgs.Type`, the type of this property is `WebSocketSharp.Opcode`) indicates the **Frame Type** of a WebSocket frame, so by checking this property, you determine which item you should use. +`e.Type` (`WebSocketSharp.MessageEventArgs.Type`, its type is `WebSocketSharp.Opcode`) indicates the **Frame Type** of a received WebSocket frame. So by checking it, you determine which item you should use. -If `e.Type` equals `Opcode.TEXT`, you use `e.Data` (`WebSocketSharp.MessageEventArgs.Data`, the type of this property is `string`) that contains the received **Text** data. +If `e.Type` equals `Opcode.TEXT`, you use `e.Data` (`WebSocketSharp.MessageEventArgs.Data`, its type is `string`) that contains a received **Text** data. -If `e.Type` equals `Opcode.BINARY`, you use `e.RawData` (`WebSocketSharp.MessageEventArgs.RawData`, the type of this property is `byte[]`) that contains the received **Binary** data. +If `e.Type` equals `Opcode.BINARY`, you use `e.RawData` (`WebSocketSharp.MessageEventArgs.RawData`, its type is `byte []`) that contains a received **Binary** data. ```cs if (e.Type == Opcode.TEXT) @@ -114,7 +114,7 @@ ws.OnError += (sender, e) => ... }; ``` -`e.Message` (`WebSocketSharp.ErrorEventArgs.Message`, the type of this property is `string`) contains an error message, so you use this. +`e.Message` (`WebSocketSharp.ErrorEventArgs.Message`, its type is `string`) contains an error message, so you use it. ##### WebSocket.OnClose Event ##### @@ -127,14 +127,14 @@ ws.OnClose += (sender, e) => }; ``` -`e.Code` (`WebSocketSharp.CloseEventArgs.Code`, the type of this property is `ushort`) contains a status code indicating the reason for closure and `e.Reason` (`WebSocketSharp.CloseEventArgs.Reason`, the type of this property is `string`) contains the reason for closure, so you use these. +`e.Code` (`WebSocketSharp.CloseEventArgs.Code`, its type is `ushort`) contains a status code indicating the reason for closure and `e.Reason` (`WebSocketSharp.CloseEventArgs.Reason`, its type is `string`) contains the reason for closure, so you use them. #### Step 4 #### Connecting to the WebSocket server. ```cs -ws.Connect(); +ws.Connect (); ``` #### Step 5 #### @@ -142,26 +142,26 @@ ws.Connect(); Sending a data. ```cs -ws.Send(data); +ws.Send (data); ``` The `Send` method is overloaded. -The types of `data` are `string`, `byte[]` and `FileInfo` class. +The types of `data` are `string`, `byte []` and `FileInfo` class. #### Step 6 #### Closing the WebSocket connection. ```cs -ws.Close(code, reason); +ws.Close (code, reason); ``` -If you want to close the WebSocket connection explicitly, you can use the `Close` method. +If you want to close the WebSocket connection explicitly, you use the `Close` method. -And the `Close` method is overloaded. The types of `code` are `WebSocketSharp.CloseStatusCode` and `ushort`, the type of `reason` is `string`. +The `Close` method is overloaded. The types of `code` are `WebSocketSharp.CloseStatusCode` and `ushort`, the type of `reason` is `string`. -In addition, the `Close()` and `Close(code)` methods exist. +In addition, the `Close ()` and `Close (code)` methods exist. ### WebSocket Server ### @@ -170,27 +170,27 @@ using System; using WebSocketSharp; using WebSocketSharp.Server; -namespace Example { - +namespace Example +{ public class Laputa : WebSocketService { - protected override void OnMessage(MessageEventArgs e) + protected override void OnMessage (MessageEventArgs e) { - var msg = e.Data.ToLower() == "balus" + var msg = e.Data.ToLower () == "balus" ? "I've been balused already..." : "I'm not available now."; - Send(msg); + Send (msg); } } - public class Program { - - public static void Main(string[] args) + public class Program + { + public static void Main (string [] args) { - var wssv = new WebSocketServiceHost("ws://dragonsnest.far/Laputa"); - wssv.Start(); - Console.ReadKey(true); - wssv.Stop(); + var wssv = new WebSocketServiceHost ("ws://dragonsnest.far/Laputa"); + wssv.Start (); + Console.ReadKey (true); + wssv.Stop (); } } } @@ -210,7 +210,7 @@ The `WebSocketServer`, `WebSocketServiceHost` and `WebSocketService` classes Creating a class that inherits the `WebSocketService` class. -For example, if you want to provide the echo service, +For example, if you want to provide an echo service, ```cs using System; @@ -219,14 +219,14 @@ using WebSocketSharp.Server; public class Echo : WebSocketService { - protected override void OnMessage(MessageEventArgs e) + protected override void OnMessage (MessageEventArgs e) { - Send(e.Data); + Send (e.Data); } } ``` -Or if you want to provide the chat service, +Or if you want to provide a chat service, ```cs using System; @@ -235,9 +235,9 @@ using WebSocketSharp.Server; public class Chat : WebSocketService { - protected override void OnMessage(MessageEventArgs e) + protected override void OnMessage (MessageEventArgs e) { - Broadcast(e.Data); + Broadcast (e.Data); } } ``` @@ -251,15 +251,15 @@ In addition, if you override the `OnOpen`, `OnError` and `OnClose` methods, each Creating a instance of the `WebSocketServiceHost` class if you want the single WebSocket service server. ```cs -var wssv = new WebSocketServiceHost("ws://example.com:4649"); +var wssv = new WebSocketServiceHost ("ws://example.com:4649"); ``` Or creating a instance of the `WebSocketServer` class if you want the multi WebSocket service server. ```cs -var wssv = new WebSocketServer(4649); -wssv.AddWebSocketService("/Echo"); -wssv.AddWebSocketService("/Chat"); +var wssv = new WebSocketServer (4649); +wssv.AddWebSocketService ("/Echo"); +wssv.AddWebSocketService ("/Chat"); ``` You can add any WebSocket service with a specified path to the service to your `WebSocketServer` by using the `WebSocketServer.AddWebSocketService` method. @@ -285,7 +285,7 @@ wssv.OnError += (sender, e) => }; ``` -`e.Message` (`WebSocketSharp.ErrorEventArgs.Message`, the type of this property is `string`) contains an error message, so you use this. +`e.Message` (`WebSocketSharp.ErrorEventArgs.Message`, its type is `string`) contains an error message, so you use it. ##### WebSocketServer.OnError Event ##### @@ -296,7 +296,7 @@ Same as the `WebSocketServiceHost.OnError` event. Starting the server. ```cs -wssv.Start(); +wssv.Start (); ``` #### Step 6 #### @@ -304,7 +304,7 @@ wssv.Start(); Stopping the server. ```cs -wssv.Stop(); +wssv.Stop (); ``` ### HTTP Server with the WebSocket ### @@ -314,8 +314,8 @@ I modified the `System.Net.HttpListener`, `System.Net.HttpListenerContext` and s You can add any WebSocket service with a specified path to the service to your `HttpServer` by using the `HttpServer.AddWebSocketService` method. ```cs -var httpsv = new HttpServer(4649); -httpsv.AddWebSocketService("/"); +var httpsv = new HttpServer (4649); +httpsv.AddWebSocketService ("/"); ``` For more information, could you see **[Example3]**? @@ -325,13 +325,13 @@ For more information, could you see **[Example3]**? As a **WebSocket Client**, creating a instance of the `WebSocket` class with the WebSocket URL with **wss** scheme. ```cs -using (var ws = new WebSocket("wss://example.com")) +using (var ws = new WebSocket ("wss://example.com")) { ... } ``` -If you want to set the custom validation for the server certificate, you can use the `WebSocket.ServerCertificateValidationCallback` property. +If you want to set the custom validation for the server certificate, you use the `WebSocket.ServerCertificateValidationCallback` property. ```cs ws.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => @@ -346,8 +346,8 @@ If you set this property to nothing, the validation does nothing with the server As a **WebSocket Server**, creating and setting a instance of the WebSocket server with some settings for the secure connection. ```cs -var wssv = new WebSocketServer(4649, true); -wssv.Certificate = new X509Certificate2("/path/to/cert.pfx", "password for cert.pfx"); +var wssv = new WebSocketServer (4649, true); +wssv.Certificate = new X509Certificate2 ("/path/to/cert.pfx", "password for cert.pfx"); ``` ### Logging ### @@ -356,25 +356,25 @@ The `WebSocket` class includes own logging functions. The `WebSocket.Log` property provides the logging functions. -If you want to change the current logging level (the default is `LogLevel.ERROR`), you can use the `WebSocket.Log.Level` property. +If you want to change the current logging level (the default is `LogLevel.ERROR`), you use the `WebSocket.Log.Level` property. ```cs ws.Log.Level = LogLevel.DEBUG; ``` -This setting means that the logging outputs with a less than `LogLevel.DEBUG` are not outputted. +The above means that the logging outputs with a less than `LogLevel.DEBUG` are not outputted. -And if you want to output a log, you can use some output methods. The following outputs a log with `LogLevel.DEBUG`. +And if you want to output a log, you use some output methods. The following outputs a log with `LogLevel.DEBUG`. ```cs -ws.Log.Debug("This is a debug message."); +ws.Log.Debug ("This is a debug message."); ``` The `WebSocketServiceHost`, `WebSocketServer` and `HttpServer` classes include the same logging functions. ## Examples ## -Examples of using **websocket-sharp**. +Examples using **websocket-sharp**. ### Example ###