11

SignalR を使用するように既存のサイトを更新することを検討しています。私のサイトはサードパーティのサービスをポーリングしてデータの変更を確認し、いくつかの魔法を実行します。クライアントは数分ごとにポーリングして、ビューを更新して更新します。

SignalR は、クライアントからのポーリングを排除する優れた方法のように思えますが、SignalR が切断された接続と再接続された接続をどのように処理するかを知りたいです。特に、しばらく中断された可能性のあるモバイル Web アプリに関してです。それまでに見逃された更新を自動的にネゴシエートしてキューに入れますか? または、このような場合、クライアントは最初から再同期する必要がありますか? 私は見ましたが、これに関するドキュメントが見つからなかったので、ガイダンスをいただければ幸いです。

4

2 に答える 2

10

クライアントは最後に見たメッセージ ID を追跡しているため、これはすべて確実に可能です。たまたまメッセージを見逃した場合は、次にサーバーに戻ったときにそれらを取得します (最後に見たメッセージ以降のすべてのメッセージを要求します)。

既定では、SignalR のサーバー側はメッセージをメモリに格納します (そして数秒ごとにメッセージを消去します) が、クライアントがオフラインになって追いつくことを考えている場合は、永続ストアに永続化するように変更できます ( IMessageStoreを参照)。

SignalR がメモリにデータを格納している間に、独自のアプリ ロジックにメッセージを保持することもできます。それは本当にアプリケーションに依存します。

モバイル クライアント用の特別なサポートは追加していませんが、モバイル クライアントに必要なローカル ストレージにメッセージ ID を永続化できます。

これらの詳細はあまり具体的ではありませんが、やりたいことはすべて SignalR で可能です。

于 2011-10-12T16:12:23.013 に答える
0

SignalR での接続有効期間イベントの理解と処理、特に次のセクションをお読みください。

このドキュメントは 2014 年に作成されたもので、基本的に、2011 年から 2012 年にかけての StackOverflow SignalR 関連の質問/回答の多くが間違っていたり不完全だったりして廃止されています。

于 2015-02-27T15:47:49.693 に答える