如何使用SuperWebSocket创建WebSocket服务器

时间:2012-03-14 05:48:52

标签: c# javascript windows sockets websocket

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

修改     这是我想要实现的目标。      enter image description here

如果有人说出一个确切的解决方案,我将采用那个。

修改      “Robar”已经给出了直接的答案。这是jsut我是如何使用它的。

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);

2 个答案:

答案 0 :(得分:4)

<强> SuperWebSocket

Echo example

教程

<强>炼金

如果您对其他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
}

如他们网站上所述,他们有一个简单的chat example

答案 1 :(得分:0)

class Program
{
    static void Main(string[] args)
    {
        var listener = new TcpListener(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();
    }
}