5

これまで、SignalR を説明する記事をたくさん読んできました。

検索すると簡単な定義が見つかります: SignalR を使用してリアルタイム Web アプリケーションを開発できます

ウィキによると : リアルタイム Web アプリケーションは、ユーザーまたはユーザーのソフトウェアが更新のためにソースを定期的にチェックすることを要求するのではなく、作成者によって公開されるとすぐにユーザーが情報を受信できるようにする一連のテクノロジとプラクティスです。

SignalR は、クライアントがサーバーにサブスクライブし、イベントが発生した場合にサーバーがすべてのクライアントに通知を送信するオブザーバー/パブリッシャー & サブスクライバー パターンに似ているようです。

だから私の質問は: 1) その SignalR はメッセージング パターン (つまり、オブザーバー/パブリッシャー & サブスクライバー) に基づいていますか?

2) はいの場合、既存のメッセージング パターン SignalR があるのに、なぜ別のメッセージング パターン SignalR を使用するのか。

3) メッセージング パターン (オブザーバー/パブリッシャー & サブスクライバー) に対する SignalR の利点は何ですか?

4

1 に答える 1

7

この質問は、ほぼ 4 年間回答されていません。SignalR は、リアルタイム アプリケーション開発用に Microsoft が推奨するソリューションです。HTTP 要求/応答モデルでは、クライアントがサーバーを呼び出してサーバーから応答を取得する必要があります。ただし、SignalR を使用すると、クライアントがサーバーを頻繁にポーリングしなくても、サーバーはクライアントにメッセージをプッシュできます。

答え1. はい、これにはオブザーバー/サブスクライバー パターンの実装があります。クライアントは、最初にサーバー イベントをサブスクライブする必要があります。次に、サーバーはクライアントにブロードキャストします (または各クライアントにメッセージを送信できます)。

回答 2 と 3.クライアントに通知 (fb 通知、イベントログなど) をプッシュする必要がある場合は、この回答の方が実用的です。これが理想的です。.Net テクノロジ スタックには、これをより効果的に行う SignalR に類似したテクノロジは他にありません。

このStock Marketサンプル アプリを参照して、サーバー イベントを生成し、リアルタイムでクライアントに渡す方法を確認してください。マルチプレイヤー ゲームとオンライン チャットは、その他の有用なケースです。

于 2016-02-06T23:55:27.627 に答える