it-swarm.com.de

Kommunikation mit einem socket.io Server über c #

Gibt es einen C # -Client, der dem socket.io-Protokoll folgt? Ich habe einen socket.io-Server, der mit einem socket.io-Javascript-Client über eine Website kommuniziert, aber ich muss auch ein C # -Stück damit verbinden, das Nachrichten senden und empfangen kann. Gibt es derzeit eine saubere Möglichkeit, dies zu tun, oder muss ich meinen eigenen Client schreiben?.

48
Dested

Es gibt ein Projekt für codeplex ( NuGet ), das ein C # -Client für socket.io ist. (Ich bin der Autor dieses Projekts - daher bin ich voreingenommen) Ich konnte nicht genau das finden, was ich in einem Client brauchte, also habe ich es gebaut und wieder veröffentlicht.

Beispiel Client-Stil:

socket.On("news", (data) =>    {
Console.WriteLine(data);
});
43
Jim Stott

Verwenden Sie die folgende Bibliothek: https://github.com/sta/websocket-sharp Sie ist über NuGet verfügbar:

PM> Install-Package WebSocketSharp -Pre

Verwenden Sie die folgende Syntax, um eine Verbindung zu einem Socket.IO 1.0 + -Server herzustellen:

using (var ws = new WebSocket("ws://127.0.0.1:1337/socket.io/?EIO=2&transport=websocket"))
{
    ws.OnMessage += (sender, e) =>
      Console.WriteLine("New message from controller: " + e.Data);

    ws.Connect();
    Console.ReadKey(true);
}

Mit anderen Worten, hängen Sie dies an den localhost an: port - "socket.io/?EIO=2&transport=websocket".

Mein vollständiger Servercode: https://Gist.github.com/anonymous/574133a15f7faf39fdb5

27
Jared Beach

Nun, ich habe eine andere .Net-Bibliothek gefunden, die hervorragend mit socket.io funktioniert. Es ist auch das aktuellste. Folgen Sie dem unten stehenden Link,

Quobject/SocketIoClientDotNet

using Quobject.SocketIoClientDotNet.Client;

var socket = IO.Socket("http://localhost");
socket.On(Socket.EVENT_CONNECT, () =>
{
    socket.Emit("hi");
});

socket.On("hi", (data) =>
{
    Console.WriteLine(data);
    socket.Disconnect();
});
Console.ReadLine();

Hoffe, es hilft jemandem.

3
Prasoon