私は本当に基本的なハブを作成し、グループを介しIHubContext
てjavascriptクライアント側メソッドを呼び出します。これにより、異なる接続がいくつあっても、常に同じユーザーにデータをプッシュでき、テキストを渡します。そのテキストは、ブラウザの複数行のテキストボックスに追加されます。
それはすべて本当にうまく機能します。スレッドは通常、長い操作を実行し、多くの場合、ハブコンテキストを使用して操作のステータスを報告するテキストを追加してクライアントを呼び出します。
ただし、誰かがブラウザを閉じて、後でテキストボックスのあるページに戻るという状況に対応したいと思います。
今のところ、彼らは接続している操作のポイントからテキストを受け取り始めます。操作の開始からすべてのテキストを取得するようにクライアントからサーバーにリクエストを送信するにはどうすればよいですか?
私のアイデアはStringBuilder
、クライアントハブに送信するテキストと同じように各行を追加するオブジェクトを作成することでした。
StringBuilder
次に、ハブの接続時に、クライアントからサーバー側の関数を呼び出します。この関数は、オブジェクトから取得できる全文を要求します。ToString();
しかし、ハブStringBuilder
は、まだ実行中のスレッドのどこからオブジェクトを取得するかをどのように知ることができますか?
また
代わりにそれをクライアントにプッシュする方法がある場合、実行中のスレッドでユーザーが接続していることをどのように確認して、をユーザーに送信できStringBuilder
ToString()
ますか?
NB。毎回追加された文字列全体を再送したくありません!ユーザーが接続したばかりで、追いつく必要がある場合のみ。
これを行う方法を理解することは、ハブの外部のサーバーでsignalRと状態を処理する方法を理解するのに役立つと思います。ありがとうございました。