私は取っているアプローチで助けが必要です。このシナリオではSignalRを使用できますか?
私はこのシナリオで、私のMVCアプリケーションの1つでDataReaderを使用してデータベースからデータを取得しています。エンドポイント(つまりWeb APIコントローラ)では、IEnumerable<>
タイプのデータを返しています。
私はforeach()
を使用して、IEnumerableから一度に1行を読み取り、SignalRを使用してクライアントにデータを返します。したがって、クライアントはサーバー側でメソッドを呼び出し、サーバーは連続してデータをストリーミングします(行ごとに)。
私は一度に1行ではなく、チャンクでデータを返すようにしました。foreachループを修正して一度に 'n'個の行を返すように管理しましたが(今度はn個の行を一度に送信します)それらはデータがなくなるまで継続して接続を閉じます。
私がチャンクでデータを送信する理由は、UI(角)でページにデータを表示するためです。
ここで私の質問は、最初の10行を送信してからクライアントが次のページをクリックするのを待って、11から20行目の送信をやり直すなど、オンデマンドでSignalRコールを行うことができます。私は各クライアント呼び出しのデータベース呼び出しを回避しようとしているので、ループは以前の場所から開始する必要があります。
私はクライアントに特定のページ(ページの後のページ)にジャンプするオプションを与えていません。
また、前のページの状態を維持できるかどうかを知りたいので、クライアントが前のページに移動したい場合は、 (私は避けようとしているどこかのメモリにデータを保存しなければ、それは可能ではないと思います)。
このシナリオでは、SignalRを使用できるかどうか教えてください。そうでない場合、これにはどのような良いアプローチがありますか?
私はSignalRの新人です。私もC#の初心者ですので、どうか簡単に進んでください。
さらに詳しい説明が必要な場合はお知らせください。
申し訳ありません。あなたの質問は、単純な方法で答えるには広すぎます。それを言い換えて、「私はこれを問題に言及すべきだった」のようなコメントを避けてください。すでに試した簡単なサンプルを見るのもいいでしょう。 –