2011-06-27 22 views
37

socket.ioプロトコルに従うc#クライアントはありますか?私はウェブサイト経由でsocket.io javascriptクライアントと通信しているsocket.ioサーバを持っていますが、メッセージを送受信できるC#ピースを接続する必要もあります。現在、これを行うためのきれいな方法があるのでしょうか、自分のクライアントを書く必要がありますか?c#経由でsocket.ioサーバーと通信する

+0

可能重複http://stackoverflow.com/questions/2064641/is-there-a-websocket-client -implemented-for-net) – jgauffin

+3

@jgauffin、本当にそうではありませんが、socket.ioはそれ自身の秘密のソースもミックスしています。 –

+0

これを動作させるには、socket.io.jsの少なくとも一部を.NETで書き直す必要があるようです。私は出発点としてWebSocket4Netを試してみましたが、まだ行く方法があるようです。 – tofutim

答えて

40

socket.ioのC#クライアントであるcodeplexNuGetも同様)に関するプロジェクトがあります。 (私はこのプロジェクトの作者です - 私は偏っています)私はクライアントで必要なものを正確に見つけることができませんでしたので、私はそれを構築し、オープンに戻しました。

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

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

私はそれを試すことを待つことができません。ありがとう – Dested

+0

Wahooo!ありがとうジム、私は今これを旋風にしようと思います!土曜の夜の予定私は冷たすぎる。これはギブスですか?また、このプロファイルはクライアントプロファイル4.0で検索されますか? –

+0

ジム、あなたのライブラリーは単に揺れる!これは、ローカルプリンタとクラウドノードアプリケーションを接続するために必要な多くの問題を解決しました。 – coffekid

-1

これは、ウェブサーバーの外観によって異なります。場合によっては、通常のソケット用のリスナーを作成することも可能です。
それ以外の場合は、おそらくあなた自身のクライアントを作る必要があります。しかし、おそらくWebSocketトランスポートを実装するだけで済むので、とにかく簡単です。

Is there a WebSocket client implemented for .NET?」と「my (fairly simple) WebSocket Socket.IO transport client implementation for Java」の質問を参考にすることをおすすめします。

+0

理想的には、Cで書かれたsocket.ioクライアントのラッパーを探しています。私はソケットWebサーバーを書くことができますが、問題はsocket.ioプロトコルです。 – Dested

+0

@Destedその後、私が提供したリンクを見てみることをお勧めします。 –

20

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

[?.NET用実装のWebSocketクライアントあり](の
+4

これはwebsocket-sharpが上記の古いプロジェクトよりはるかに信頼性が高いため、ここでは受け入れられた答えとみなされるべきです。 – user3791372

関連する問題