44

SignalR は Reactive Extensions と同じものですか? 理由を説明できますか、または説明できませんか?

4

1 に答える 1

95

いいえ、それらはまったく同じものではありません。

Reactive Extensions は、観測可能なデータまたはイベントのストリーム (実際には非常に似ています) を作成および構成するためのライブラリです。基本的に、クライアントとサーバーの接続やその他のことについては何も知りません。のみに焦点を当てておりObservable、コレクション、ストリーム、イベント、非同期メソッドなどを共通Observableインターフェイスにラップできます。

SignalR は、クライアントとサーバー間の永続的な (つまり、有効な) 二重接続を作成するためのツールキットです。これは HTTP 上で動作し、その目的は、快適な開発のために、ロング ポーリング、サーバー側イベント、および Web ソケットの 3 つの低レベル技術を高レベル API にラップすることです。ということで、コミュニケーション重視です。

したがって、コンポーネント自体は互いに完全に独立しており、まったく異なる懸念があります。

一方、これら 2 つの優れたライブラリは相互に補完的です。一方は SignalR を使用してサーバーからクライアントにイベントをプッシュし、サーバー側のイベントを RX にラップして、Observable複雑でリアクティブなユーザー エクスペリエンスを作成します。

アップデート

Rx は LINQ のようなもので、「何が起こるか」を指定するのに役立ちますが、「どのように」の詳細には入りません。SignalR は、リアルタイム ネットワーク通信の「方法」を実装するためのライブラリです – Paul Betts

「LINQ to Objects」と RX の違いは、「LINQ to Objects」では列挙可能なものから次の項目を取得するのに対し、RX では監視可能なものから次の項目をプッシュすることです。

于 2011-12-07T20:56:13.620 に答える