如何使用SuperWebSocket创build一个WebSocket服务器

我正在创build一个需要WebSocket通信的应用程序。 我所需要的只是一个带有线程可能性的简单的WebSocketServer。 我发现SuperWebSocket可以满足我的需求。 但是,我对C#的不熟悉使得我们无法理解代码。 任何人都可以告诉我如何创build一个简单的服务器应该回应从浏览器/网页发送的消息。 我将非常感谢那些performance出一些好的方向的人。 我无法弄清楚他们的示例代码的用法。

编辑:这是我想要实现的东西。 在这里输入图像说明

如果有人说一个确切的解决scheme,我会采用那一个。

编辑: “Robar”已经给出了直接的答案。 这是我如何使用它。

this.NewSessionConnected += new SessionEventHandler<WebSocketSession>(this.WebSocketServer_NewSessionConnected); this.NewDataReceived += new SessionEventHandler<WebSocketSession, byte[]>(this.WebSocketServer_NewDataReceived); this.NewMessageReceived += new SessionEventHandler<WebSocketSession, string>(this.WebSocketServer_NewMessageReceived); this.SessionClosed += new SessionEventHandler<WebSocketSession, SuperSocket.SocketBase.CloseReason>(this.WebSocketServer_SessionClosed); 

SuperWebSocket

回声示例教程

炼金术

如果您打开其他C#WebSocket服务器,则可以使用Alchemy 。 服务器实现非常简单:

 static void Main(string[] args) { var aserver = new WSserver(8100, IPAddress.Any) { DefaultOnReceive = new OnEventDelegate(OnReceive), DefaultOnSend = new OnEventDelegate(OnSend), DefaultOnConnect = new OnEventDelegate(OnConnect), DefaultOnConnected = new OnEventDelegate(OnConnected), DefaultOnDisconnect = new OnEventDelegate(OnDisconnect), TimeOut = new TimeSpan(0, 5, 0) }; aserver.Start(); } static void OnConnected(UserContext aContext) { Console.WriteLine("Client Connection From : " + aContext.ClientAddress.ToString()); // TODO: send data back } 

正如他们的网站上提到的,他们有一个简单的聊天示例 。

 class Program { static void Main(string[] args) { var listener = new Tcplistner(IPAddress.Loopback, 8181); listener.Start(); using (var client = listener.AcceptTcpClient()) using (var stream = client.GetStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) { writer.WriteLine("HTTP/1.1 101 Web Socket Protocol Handshake"); writer.WriteLine("Upgrade: WebSocket"); writer.WriteLine("Connection: Upgrade"); writer.WriteLine("WebSocket-Origin: http://localhost:8080"); writer.WriteLine("WebSocket-Location: ws://localhost:8181/websession"); writer.WriteLine(""); } listener.Stop(); } }