c # - Sådan opretter du en WebSocket-server ved hjælp af SuperWebSocket

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg laver en applikation, der har brug for WebSocket Communication. Alt jeg behøver er en enkel WebSocketServer med gevindmuligheder. Jeg fandt ud af at SuperWebSocket kan opfylde mine behov. Men min dårlige kendskab til C # gør problemer med at forstå koden. Kan nogen vise mig Sådan oprettes en simpel server Hvilket skal ekko beskeden, der sendes fra browseren/websiden. Jeg vil være meget taknemmelig for den person, der viser nogle gode retninger || guide || kode. Jeg kunne ikke finde ud af brugen fra deres prøvekoder.


EDIT:
    Dette er det, jeg vil opnå.
     Indtast billedbeskrivelse her


Hvis nogen siger en præcis løsning, vil jeg vedtage den ene.


EDIT:
     'Robar' gav allerede det direkte svar. Dette er jsut Hvordan jeg brugte det.


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

Bedste reference


SuperWebSocket


Tutorial for Echo eksempel [4]


Alchemy


Hvis du er åben for andre C # WebSocket-servere, kan du bruge Alchemy.
Serverimplementeringen er ret lige frem: [5]


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
}


Som nævnt på deres hjemmeside har de et simpelt chat eksempel. [6]

Andre referencer 1


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