私はアプリケーションを開発しました。サーバー側の技術はasp.netのWeb APIであり、クライアント側はjavascriptです。私のアプリケーションでは、Signalrを使用してクライアントに通知を送ります - サーバーからクライアントへの通知をプッシュします。シグナルインテグレータとWeb APIを統合してクライアントに通知を送る
すべてのsignalrのやりとりは、HTTPリクエストからのプッシュと、クライアントからsignalrを通してサーバーへのプッシュではないため、Hubクラスの外部で発生します。
HTTPリクエストが正常に処理された後、リクエストをコミットしたクライアントの横にあるすべてのクライアントに通知する必要があります。
誰がこれらの通知を担当する必要がありますか?法的要求を処理した後、私のサーバは単にクライアントに通知を送るべきですか? (これは私が現時点で行っていることです)これが方法の場合、要求を出した人以外のクライアントすべてにどのように通知することができますか?リマインダ - リクエストがHttpでシグナルがプッシュされていないため、クライアント側へのプッシュはハブの外のクラスで発生します。したがって、おそらく示唆したように、ContextまたはClient.Othersプロパティを使用することはできません。どのクライアントに通知する必要があるのか分かりませんか?現時点では、私はClients.Allを使用しています。要求を出した人も、私が好きではないことも通知されます。
オプション2は、私のサーバーが成功ステータスコードで応答した後です。リクエストを行ったクライアントは、他のクライアントに通知する責任があります。つまり、彼はメッセージをサーバーにプッシュし、サーバーは他のすべてのクライアントにその通知をプッシュします(今度はシグナルハブ内にあります。 Clients.Others)。
どのアプローチをとるべきですか?
そのオプションを選択することで、私は別のパラメータを取るためにすべての私の要求を変更する必要があります - クライアントID?そうするより良い方法はありますか?私はすべての作業とテスト済みのAPIを変更するつもりはありません –
私の更新を参照してください。 –
あなたのコードは私の2番目の選択肢を説明していると思います。 –