現在、クライアントにメッセージを送受信する.Netで記述されたTCPサーバーアプリケーションがあります。Webアプリケーションの構築を検討しているため、通信レイヤーが必要です。
TCPサーバーに接続し、Webアプリケーションに通信をプッシュするNode.JS + Socket.IOアプリを作成しました。すべて正常に動作します。
.Netスタックに保持するための代替手段としてSignalRについて読んだところです。
しかし、C#Websocket Server、基本的なデモ here を作成できることもわかっています。
この基本的なサーバーはSignalRと同じですが、明らかに多くの機能を備えていると思いますか?
私が決めようとしているのは、現在のTCPアプリケーションをWebsocketサーバーに追加するだけですか、それとも別のSignalRまたはNode.jsルートに行きますか?アプリケーションの実行、Windowsサービス、コンソールアプリ、またはIISサービス?
SignalRは、トランスポートネゴシエーション/フォールバックをサポートするという点でSocket.IOに似ています。これはフレームワークであり、サーバーではないため、何らかのサーバーでホストする必要があります。 ASP.NET、OWIN(例:Kayak)およびセルフホスト用のホストがあるため、独自のプロセスで簡単に実行できます。 Windowsサービス。
SignalRは、ブラウザー(JS)、. NET、Windows Phone 7、およびSilverlightのクライアントをサポートしています。また、iOS、Mono Touchなどに貢献しているクライアントもいます。
SignalRは、生のソケットよりもはるかに高いレベルのAPIを提供します。これは大きな利点であり、サーバーからクライアントへの「RPC」などをブロードキャスト(またはターゲット)方式で実行できます。
両方のテクノロジーを使用し、.NET /ノードスタックの両側で作業しました。
更新-jquery情報は適用されなくなったため削除
スケーラブル/スレッドセーフの開発TCPサーバーは簡単なタスクではないかもしれません。一方、自分で始めるためにインターネット上に非常に素晴らしいリソースがあります。例えば、素敵なオープンソースのWebSocketプロジェクトを探しているだけで、私のアドバイスは次のとおりです。
Alchemy Project :オープンソースC#WebSocketライブラリ
Fleck Project :オープンソースのC#WebSocketライブラリ
SignalRは素晴らしいかもしれませんが、WebSocket機能を提供するにはWindows Server 8/IIS 8が必要です。
商用製品側では、特にwebsocket機能がすべてのブラウザーで利用できるわけではないことを考慮して、PokeIn WebSocketとリバースAjaxライブラリをお勧めします。バージョン2.0以降では、WebSocketサーバーが組み込まれています。詳細は here から入手できます