web-dev-qa-db-fra.com

Communiquer avec un serveur socket.io via c #

Existe-t-il un client c # qui suit le protocole socket.io? J'ai un serveur socket.io qui communique avec un client javascript socket.io via un site Web, mais j'ai également besoin de lui connecter une pièce c # qui peut envoyer et recevoir des messages. Existe-t-il un moyen propre de le faire actuellement ou devrai-je écrire mon propre client.

48
Dested

Il existe un projet sur codeplex ( NuGet également) qui est un client C # pour socket.io. (Je suis l'auteur de ce projet - donc je suis partisan) Je n'ai pas pu trouver exactement ce dont j'avais besoin chez un client, alors je l'ai construit et je l'ai rendu public.

Exemple de style client:

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

Utilisez la bibliothèque suivante: https://github.com/sta/websocket-sharp Elle est disponible via NuGet:

PM> Install-Package WebSocketSharp -Pre

Pour vous connecter à un serveur Socket.IO 1.0 +, utilisez la syntaxe suivante:

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

En d'autres termes, ajoutez ceci à l'hôte local: port - "socket.io/?EIO=2&transport=websocket".

Mon code de serveur complet: https://Gist.github.com/anonymous/574133a15f7faf39fdb5

27
Jared Beach

Eh bien, j'ai trouvé une autre bibliothèque .Net qui fonctionne très bien avec socket.io. C'est aussi le plus mis à jour. Suivez le lien ci-dessous,

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

J'espère que ça aide quelqu'un.

3
Prasoon