Связь с сервером socket.io через c # - PullRequest
47 голосов
/ 28 июня 2011

Есть ли клиент ac #, который следует протоколу socket.io?У меня есть сервер socket.io, который общается с клиентом javascript socket.io через веб-сайт, но мне также нужно подключить к нему ac # кусок, который может отправлять и получать сообщения.Есть ли чистый способ сделать это в настоящее время, или мне придется написать свой собственный клиент.

Ответы [ 4 ]

43 голосов
/ 16 февраля 2012

Существует проект codeplex (также NuGet ), который является клиентом C # для socket.io. (Я являюсь автором этого проекта - поэтому я предвзято) Я не смог найти именно то, что мне нужно в клиенте, поэтому я собрал его и выпустил обратно в открытую.

Пример стиля клиента:

socket.On("news", (data) =>    {
Console.WriteLine(data);
});
27 голосов
/ 19 декабря 2015

Используйте следующую библиотеку: https://github.com/sta/websocket-sharp Доступно через NuGet:

PM> Install-Package WebSocketSharp -Pre

Для подключения к серверу Socket.IO 1.0 + используйте следующий синтаксис:

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

Другими словами, добавьте это к localhost: port - "socket.io/?EIO=2&transport=websocket".

Мой полный код сервера: https://gist.github.com/anonymous/574133a15f7faf39fdb5

3 голосов
/ 29 июня 2018

Ну, я нашел другую библиотеку .Net, которая прекрасно работает с socket.io. Это тоже самое актуальное. Перейдите по ссылке ниже,

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

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 28 июня 2011

Это зависит от того, как выглядит ваш веб-сервер. В некоторых случаях может быть целесообразным сделать слушателя и для обычных сокетов.
В противном случае вам, вероятно, придется сделать свой собственный клиент. Однако вам, вероятно, потребуется реализовать транспорт WebSocket, так что в любом случае он должен быть достаточно простым.

Для чего стоит предложить вопрос " Существует ли клиент WebSocket для .NET? " и моя (довольно простая) реализация клиента транспорта WebSocket Socket.IO для Java .

...