websocket-server – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Net;
6 using WebSockets.Server;
7 using System.Diagnostics;
8 using WebSocketsCmd.Client;
9 using WebSocketsCmd.Properties;
10 using WebSockets.Client;
11 using System.Threading.Tasks;
12 using WebSockets.Common;
13 using System.Threading;
14 using WebSockets;
15 using WebSockets.Events;
16 using WebSocketsCmd.Server;
17 using System.IO;
18  
19 namespace WebSocketsCmd
20 {
21 public class Program
22 {
23 private static void TestClient(object state)
24 {
25 var logger = (IWebSocketLogger) state;
26 using (var client = new ChatWebSocketClient(true, logger))
27 {
28 Uri uri = new Uri("ws://localhost/chat");
29 client.TextFrame += Client_TextFrame;
30 client.ConnectionOpened += Client_ConnectionOpened;
31  
32 // test the open handshake
33 client.OpenBlocking(uri);
34 }
35  
36 Trace.TraceInformation("Client finished, press any key");
37 Console.ReadKey();
38 }
39  
40 private static void Client_ConnectionOpened(object sender, EventArgs e)
41 {
42 Trace.TraceInformation("Client: Connection Opened");
43 var client = (ChatWebSocketClient) sender;
44  
45 // test sending a message to the server
46 client.Send("Hi");
47 }
48  
49 private static void Client_TextFrame(object sender, TextFrameEventArgs e)
50 {
51 Trace.TraceInformation("Client: {0}", e.Text);
52 var client = (ChatWebSocketClient) sender;
53  
54 // lets test the close handshake
55 client.Dispose();
56 }
57  
58 private static void Main(string[] args)
59 {
60 IWebSocketLogger logger = new WebSocketLogger();
61  
62 try
63 {
64 int port = Settings.Default.Port;
65 string webRoot = Settings.Default.WebRoot;
66 if (!Directory.Exists(webRoot))
67 {
68 string baseFolder = AppDomain.CurrentDomain.BaseDirectory;
69 logger.Warning(typeof(Program), "Webroot folder {0} not found. Using application base directory: {1}", webRoot, baseFolder);
70 webRoot = baseFolder;
71 }
72  
73 // used to decide what to do with incoming connections
74 ServiceFactory serviceFactory = new ServiceFactory(webRoot, logger);
75  
76 using (WebServer server = new WebServer(serviceFactory, logger))
77 {
78 server.Listen(port);
79 Thread clientThread = new Thread(new ParameterizedThreadStart(TestClient));
80 clientThread.IsBackground = false;
81 clientThread.Start(logger);
82 Console.ReadKey();
83 }
84 }
85 catch (Exception ex)
86 {
87 logger.Error(typeof(Program), ex);
88 Console.ReadKey();
89 }
90 }
91 }
92 }