/ / Комуникация със socket.io сървър чрез c # - c #, контакти, клиент, websocket, socket.io

Комуникация с сървър socket.io чрез c # - c #, контакти, клиент, websocket, socket.io

Има ли c # клиент, който следва сокета.io протокол? Имам сървър socket.io, който комуникира със socket.io javascript клиент чрез уеб сайт, но също така трябва да свържа c # парче към него, което може да изпраща и получава съобщения. Има ли чист начин да направите това в момента или ще трябва да напиша свой клиент.

Отговори:

42 за отговор № 1

Има проект на CodePlex ( NuGet също), който е C # клиент за socket.io. (Аз съм автор на този проект - така че съм "предубеден") не можех да намеря точно това, от което имах нужда в един клиент, затова го построих и го пуснах на открито.

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

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

21 за отговор № 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);
}

С други думи, добавете това към локалния хост: port - "socket.io/?EIO=2&transport=websocket".

Моят пълен сървър код: https://gist.github.com/anonymous/574133a15f7faf39fdb5


1 за отговор № 3

Е, намерих друга .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();

Надявам се, че помага на някого.


-1 за отговор № 4

Това зависи от това, как изглежда вашият уеб сървър. В някои случаи може да е приложимо и за слушане на обикновени гнезда.
В противен случай вероятно ще трябва да направите свой клиент. Въпреки това, вероятно ще трябва само да внедрите WebSocket транспорт, така че трябва да бъде доста просто, така или иначе.

Защото това, което си заслужава, предлагам да разгледаме въпроса "Има ли WebSocket клиент изпълнен за .NET?" и моето (доста просто) WebSocket Socket.IO транспортен клиент за Java.