78

現在、メッセージを受信して​​クライアントに送信する .Net で記述された TCP サーバー アプリケーションがあります。Web アプリケーションの構築を検討しているため、通信層が必要です。

TCPサーバーに接続し、通信をWebアプリケーションにプッシュするNode.JS + Socket.IOアプリを構築しましたが、すべて正常に動作します。

.Netスタックに保持するための代替手段として、SignalRについて読みました。

ただし、C# Websocket サーバーを作成できることもわかりました。基本的なデモはこちら

この基本的なサーバーは SignalR と同じだと思いますが、明らかにより多くの機能を備えていますか?

私が決定しようとしているのは、現在の TCP アプリケーションに Websocket サーバーを追加するだけなのか、それとも別の SignalR または Node.js ルートをたどるのかということです。興味深いことに、SignalR アプリケーションはどのように実行されますか?それは Windows サービス、コンソール アプリ、または IIS サービスとしてですか?

4

3 に答える 3

78

SignalRは、トランスポートネゴシエーション/フォールバックをサポートするという点でSocket.IOに似ています。これはフレームワークであり、サーバーではないため、何らかのサーバーでホストする必要があります。ASP.NET、OWIN(Kayakなど)およびセルフホスト用のホストがあるため、Windowsサービスなどの独自のプロセスで簡単に実行できます。

SignalRは、ブラウザー(JS)、. NET、Windows Phone 7、およびSilverlightのクライアントをサポートしています。iOS、MonoTouchなどの寄稿クライアントもあります。

SignalRは、rawソケットよりもはるかに高いレベルのAPIを提供します。これは大きな利点であり、サーバーからクライアントへの「RPC」などをブロードキャスト(またはターゲット)方式で実行できます。

于 2012-03-05T20:39:13.897 に答える
15

スケーラブルでスレッドセーフなTCPサーバーの開発は簡単な作業ではないかもしれません。一方、あなた自身を始めるためにインターネット上に非常に素晴らしいリソースがあります。たとえば、素敵なオープンソースのWebSocketプロジェクトを探しているだけなら、私のアドバイスは次のようになります。

Alchemy Project:オープンソースのC#WebSocketライブラリ

Fleckプロジェクト:オープンソースのC#WebSocketライブラリ

SignalRは優れている可能性がありますが、WebSocket機能を提供するにはWindows Server 8 /IIS8が必要です。

商用製品の面では、特にWebSocket機能がすべてのブラウザーで利用できるわけではないことを考えると、PokeInWebSocketとリバースAjaxライブラリをお勧めします。バージョン2.0以降、WebSocketサーバーが組み込まれています。詳細はこちらから入手できます

于 2012-03-05T17:55:19.130 に答える