Подтвердить что ты не робот

Общение с сервером socket.io через С#

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Используйте следующую библиотеку: 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

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

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