Как создать сервер WebSocket с помощью SuperWebSocket - PullRequest
10 голосов
/ 14 марта 2012

Я создаю приложение, которому требуется WebSocket Communication. Все, что мне нужно, это простой WebSocketServer с возможностями потоков. Я обнаружил, что SuperWebSocket может удовлетворить мои потребности. Но мое плохое знакомство с C # затрудняет понимание кода. Кто-нибудь может показать мне, как создать простой сервер, который должен отражать сообщение, отправленное из браузера / веб-страницы. Я буду очень благодарен человеку, который показывает хороший код руководства. Я не мог понять использование из их примеров кодов.

EDIT: Это то, чего я хочу достичь. enter image description here

Если кто-нибудь скажет точное решение, я приму его.

EDIT: «Робар» уже дал прямой ответ. Это просто как я это использовал.

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 ]

4 голосов
/ 15 марта 2012

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
}

Как уже упоминалось на их веб-сайте, у них есть простой пример чата .

0 голосов
/ 14 марта 2012
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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...