Komunikowanie się z socket.io serwer via c#

Czy istnieje klient c#, który podąża za socket.io protokół? Mam socket.io serwer komunikujący się z socket.io klient javascript przez stronę internetową, ale muszę również podłączyć do niego kawałek c#, który może wysyłać i odbierać wiadomości. Czy jest jakiś czysty sposób, aby to zrobić, czy będę musiał napisać własnego klienta.

Author: Dested, 2011-06-28

4 answers

Jest projekt codeplex ( NuGet również) jest to klient C # dla socket.io. (Jestem autorem tego projektu - więc jestem stronniczy) nie mogłem znaleźć dokładnie tego, czego potrzebowałem w kliencie, więc zbudowałem go i wypuściłem z powrotem na rynek.

Przykładowy styl Klienta:

socket.On("news", (data) =>    {
Console.WriteLine(data);
});
 42
Author: Jim Stott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-04 13:50:00

Użyj następującej biblioteki: https://github.com/sta/websocket-sharp Jest on dostępny za pośrednictwem NuGet:

PM> Install-Package WebSocketSharp -Pre

Aby połączyć się z Socket.IO 1.0 + serwer, użyj następującej składni:

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

Innymi słowy, dodaj to do localhost:port - "socket.io/?EIO=2&transport=websocket".

Mój Pełny kod serwera: https://gist.github.com/anonymous/574133a15f7faf39fdb5

 22
Author: Jared Beach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-22 17:03:50

Znalazłem kolejną bibliotekę. Net, która świetnie współpracuje z socket.io. jest to również najbardziej zaktualizowany. Kliknij na poniższy 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();
Hope, to komuś pomaga.
 2
Author: Prasoon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 07:11:07

To zależy od tego, jak wygląda Twój serwer WWW. W niektórych przypadkach może mieć zastosowanie również tworzenie słuchacza dla zwykłych gniazd.
W przeciwnym razie prawdopodobnie będziesz musiał stworzyć własnego klienta. Jednak prawdopodobnie będziesz musiał tylko zaimplementować Transport WebSocket, więc i tak powinno być dość proste.

Na ile to jest warte, proponuję spojrzeć na pytanie " czy istnieje Klient WebSocket zaimplementowany dla. Net?" i mój (dość prosty) WebSocket Socket.IO implementacja klienta transportowego dla Javy .

 -2
Author: Teo Klestrup Röijezon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:12