web-dev-qa-db-ja.com

C#を介してsocket.ioサーバーと通信する

Socket.ioプロトコルに従うc#クライアントはありますか? socket.io javascriptクライアントとWebサイト経由で通信するsocket.ioサーバーがありますが、メッセージを送受信できるc#ピースを接続する必要もあります。現在これを行うためのクリーンな方法はありますか、それとも自分のクライアントを作成する必要がありますか?.

48
Dested

Socket.ioのC#クライアントである codeplexNuGet も)にプロジェクトがあります。 (私はこのプロジェクトの著者です-だから私は偏見があります)クライアントで必要なものを正確に見つけることができなかったので、私はそれを構築し、公開してリリースしました。

クライアントスタイルの例:

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

次のライブラリを使用します。 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

27
Jared Beach

さて、socket.ioでうまく機能する別の.Netライブラリを見つけました。これも最新版です。以下のリンクに従ってください、

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

誰かの助けになることを願っています。

3
Prasoon