From ca4fdabb2eae90cbcd0f5e9307a0e49880ffa738 Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 3 Oct 2014 15:32:50 +0900 Subject: [PATCH] Modified a few for Example2 --- Example2/AssemblyInfo.cs | 1 - Example2/Chat.cs | 17 +++++++++-------- Example2/Echo.cs | 7 ++----- Example2/Program.cs | 40 +++++++++++++++++++++++----------------- 4 files changed, 34 insertions(+), 31 deletions(-) diff --git a/Example2/AssemblyInfo.cs b/Example2/AssemblyInfo.cs index f5ad9e1c..55cd94f7 100644 --- a/Example2/AssemblyInfo.cs +++ b/Example2/AssemblyInfo.cs @@ -24,4 +24,3 @@ using System.Runtime.CompilerServices; //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] - diff --git a/Example2/Chat.cs b/Example2/Chat.cs index 7b47574b..a330ad38 100644 --- a/Example2/Chat.cs +++ b/Example2/Chat.cs @@ -7,10 +7,9 @@ namespace Example2 { public class Chat : WebSocketBehavior { - private static int _num = 0; - - private string _name; - private string _prefix; + private string _name; + private static int _number = 0; + private string _prefix; public Chat () : this (null) @@ -24,13 +23,15 @@ namespace Example2 private string getName () { - var name = Context.QueryString ["name"]; - return !name.IsNullOrEmpty () ? name : (_prefix + getNum ()); + var name = Context.QueryString["name"]; + return !name.IsNullOrEmpty () + ? name + : (_prefix + getNumber ()); } - private static int getNum () + private static int getNumber () { - return Interlocked.Increment (ref _num); + return Interlocked.Increment (ref _number); } protected override void OnOpen () diff --git a/Example2/Echo.cs b/Example2/Echo.cs index 94185aea..f0a087ca 100644 --- a/Example2/Echo.cs +++ b/Example2/Echo.cs @@ -8,11 +8,8 @@ namespace Example2 { protected override void OnMessage (MessageEventArgs e) { - var name = Context.QueryString ["name"]; - var msg = !name.IsNullOrEmpty () - ? String.Format ("'{0}' to {1}", e.Data, name) - : e.Data; - + var name = Context.QueryString["name"]; + var msg = !name.IsNullOrEmpty () ? String.Format ("'{0}' to {1}", e.Data, name) : e.Data; Send (msg); } } diff --git a/Example2/Program.cs b/Example2/Program.cs index b6c68975..e6402874 100644 --- a/Example2/Program.cs +++ b/Example2/Program.cs @@ -9,23 +9,31 @@ namespace Example2 { public class Program { - public static void Main (string [] args) + public static void Main (string[] args) { + /* Create a new instance of the WebSocketServer class. + * + * If you would like to provide the secure connection, you should create the instance + * with the 'secure' parameter set to true, or the wss scheme WebSocket URL. + */ var wssv = new WebSocketServer (4649); - //var wssv = new WebSocketServer (4649, true); // For Secure Connection + //var wssv = new WebSocketServer (4649, true); //var wssv = new WebSocketServer ("ws://localhost:4649"); - //var wssv = new WebSocketServer ("wss://localhost:4649"); // For Secure Connection + //var wssv = new WebSocketServer ("wss://localhost:4649"); #if DEBUG - // Changing the logging level + // To change the logging level. wssv.Log.Level = LogLevel.Trace; + + // To change the wait time for the response to the WebSocket Ping or Close. + wssv.WaitTime = TimeSpan.FromSeconds (2); #endif - /* For Secure Connection - var cert = ConfigurationManager.AppSettings ["ServerCertFile"]; - var password = ConfigurationManager.AppSettings ["CertFilePassword"]; + /* To provide the secure connection. + var cert = ConfigurationManager.AppSettings["ServerCertFile"]; + var password = ConfigurationManager.AppSettings["CertFilePassword"]; wssv.Certificate = new X509Certificate2 (cert, password); */ - /* For HTTP Authentication (Basic/Digest) + /* To provide the HTTP Authentication (Basic/Digest). wssv.AuthenticationSchemes = AuthenticationSchemes.Basic; wssv.Realm = "WebSocket Test"; wssv.UserCredentialsFinder = identity => { @@ -36,29 +44,29 @@ namespace Example2 }; */ - // Not to remove inactive clients periodically + // Not to remove inactive sessions periodically. //wssv.KeepClean = false; - // To resolve to wait for socket in TIME_WAIT state + // To resolve to wait for socket in TIME_WAIT state. //wssv.ReuseAddress = true; - // Adding WebSocket services + // Add the WebSocket services. wssv.AddWebSocketService ("/Echo"); wssv.AddWebSocketService ("/Chat"); - /* With initializing + /* Add the WebSocket service with initializing. wssv.AddWebSocketService ( "/Chat", () => new Chat ("Anon#") { Protocol = "chat", - // Checking Origin header + // To validate the Origin header. OriginValidator = value => { Uri origin; return !value.IsNullOrEmpty () && Uri.TryCreate (value, UriKind.Absolute, out origin) && origin.Host == "localhost"; }, - // Checking Cookies + // To validate the Cookies. CookiesValidator = (req, res) => { foreach (Cookie cookie in req) { cookie.Expired = true; @@ -72,9 +80,7 @@ namespace Example2 wssv.Start (); if (wssv.IsListening) { - Console.WriteLine ( - "A WebSocket server listening on port: {0}, providing services:", wssv.Port); - + Console.WriteLine ("Listening on port {0}, providing services:", wssv.Port); foreach (var path in wssv.WebSocketServices.Paths) Console.WriteLine ("- {0}", path); }