1

アプリケーションで SignalR を使用して、グループ内のさまざまなユーザーにメッセージを送信しています。

メッセージを追加/編集または削除できる機能があり、同じアクションが SignalR ハブを介してそのグループ内のすべてのユーザーに送信されます。

すべて正常に動作しています。

問題は、接続が失われた/インターネットが切断された、またはラップトップ/マシンがオフになっている間に発生した他の人のアクション (メッセージの追加/編集/削除) を見逃す可能性があることです。

接続を回復するか、ラップトップを再度開いた後、ユーザーは、オフライン中に発生した見逃したメッセージ、見逃したアクションをすべて受信する必要があります。

すべてのユーザーのすべてのクライアント (クライアント ID) をデータベースに保存しています。

誰かがそれを行う方法を教えてもらえますか?

解決策の 1 つは、最後のメッセージ ID (ui に到達した) をサーバーにポーリングして、新しいメッセージがあるかどうかを確認することですが、メッセージが他のユーザーからサーバーで編集/削除された可能性があるため、目的を果たしません。

私はすでに次のリンクを通過しました

SignalR は不在メッセージを処理できますか?

SignalR メッセージの損失はサーバー側で検出できますか?

SignalR でメッセージ配信を保証するにはどうすればよいですか?

再接続時に欠落したメッセージを取得する Signalr クライアント

https://github.com/JabbR/JabbR/issues/699

しかし、ユーザーがオフラインであった間に発生した履歴全体の側面をカバーしているものはありません。

たとえば、Skype で切断され、数時間後に戻ってきた場合、その間に発生したすべてのアクション (メッセージの追加/編集/削除) のすべての履歴が取得され、エンド ユーザーに更新されます。

4

1 に答える 1