ユーザー(特定のユーザー)に新しい友達リクエストがあることを通知するようなサービスを探していました。私は SingalR に出会い、これは私のアプリケーションに役立つかもしれないと考えました。SignalR の多くの例とライブでの使用はチャット アプリケーションであり、これは理にかなっています。とにかく、ここで私が達成しようとしていることはここにあります。RavenDB をデータストアとして使用する MVC ソーシャル アプリケーションがあります。ユーザーが別のユーザーとのフレンドシップを要求する場合があります。新しい要求 (X 秒ごとにチェックするもの) があるクライアントをリアルタイムで更新したいと考えています。私は、適切な SignalR の例、またはドキュメント (できれば例) を正しい方向に向けるか、または私のアプリにより適した SignalR 以外の優れたサービスを探しています。回答ありがとうございます。
1 に答える
SignalR は間違いなくアプリに適しています。たとえば JabbR (http://jabbr.net/、https://github.com/davidfowl/JabbR ) はチャット ルームかもしれませんが、レコードを更新/取得するために常にデータベースにアクセスしています。
あなたの場合、定期的にチェックするのではなく、データベースの書き込み時にコマンドをキューに入れて他のユーザーに通知することをお勧めします。つまり、ユーザー A がユーザー B と友達になることを要求したとします。最初にその要求がデータベースに書き込まれ、次に関係者全員に SignalR を介してメッセージをブロードキャストします。
ただし、X 秒ごとにタイマー チェックを実装したい場合は、まだ可能です。ShootR (shootr.signalr.net、https://github.com/NTaylorMullen/ShootR ) を参照してください。これは、ゲーム タイマーを利用し、衝突を検出するとブロードキャストするマルチプレイヤー ゲームです。確かに、ShootR はサーバー上ではるかに高い間隔 (50 回以上/秒) で計算を行っていますが、これは本質的に同じです。
したがって、Xs アプローチごとにチェックしたい場合は、2 つのプロジェクト (JabbR と ShootR) のハイブリッドを採用し、スレッド タイマーを実装することをお勧めします (ShootR が使用する高頻度の更新に使用されるカスタム タイマーの代わりに)。次に、データベースからデータを取得し、そのデータを使用してユーザーに更新を送信します。
お役に立てれば!