28

複数のハブクラスを使用できる複数のページがある場合、これを管理するための最良の方法は何ですか?

例えば:

  • Webサイトの別のページに移動して、前のページで開いていたのと同じハブクラスへの接続を本質的に「再開」するのは悪いことですか?

  • ページ上で複数のハブ接続を開くことは、それらが異なるハブクラスであっても、すべて1つの接続に統合されているため、問題ないと考えるのは正しいですか?

4

3 に答える 3

14

ハブを開始するには、ハブとハブのクライアント側のWIKIエントリをお読みください。複数のページのコンテキストに応じて、いくつかのことがあります。

  1. ハブを起動すると、複数のページにわたってそのハブに対して同じままのID(誰かが例で確認できます)をクライアントに提供します。
  2. 同じハブへの接続を再開するのは悪くありません。すべてのページでhub.startクライアント側メソッドを実行している場合がありますが、1つのクライアントが複数のウィンドウを開いたり、あるページから別のページに移動したりする場合は、ハブで同じ接続IDを使用できるため、連絡を取り合うことができます。複数のハブの場合は、ハブと接続IDを管理する必要があります。したがって、この質問は、「複数のISPが異なるWebサイトのインターネット接続を提供しているのは悪いことですか」のようなものです。あなたはそれらを持つことができますが、それはやり過ぎです。単一のISPがすべてのページをサーバーに提供することもできます。
  3. 1つのページに複数のハブを配置することは理想的ではありませんが、機能します。繰り返しになりますが、答えには問題に対するコンテキストが少し必要ですが、一般に、グループを介して、または他のパラメーターベースのアプローチを使用して、同じ接続IDでさまざまな要求を区別できます。同じページに2つのハブがあると、パラメーターまたはグループを使用してメッセージングの異なる領域を分離するよりも多くのリソースが必要になる場合があります(これをテストする必要があります)。

例:

2つの部分からなるページがあります。1つはリアルタイムのユーザーアクティビティを示すグラフで、もう1つはユーザーが行ったリアルタイムのデータ変更を表として表示する領域です。2つのハブまたは2つのグループを作成しますか、それとも何ですか?同じグラフとデータテーブルを使用する他のページがあります。

私の解決策:

  1. サーバーからリアルタイムデータを受信するためのアプリケーション用の単一のハブを作成します。
  2. グラフポイントとデータテーブルを送信するために、サーバー上にさまざまなメソッドを作成します。
  3. これらのグラフを使用して同じハブ上のサーバーメソッドと通信するすべてのページにクライアント側メソッドを作成します。

ページを切り替えると、クライアントは同じハブに接続してgetGraphまたはgetDataTable、あるいはその両方を要求し、クライアントに関連データを入力します。同様に、サーバー上でデータが変更されたときに、クライアント側のメソッドを呼び出して、すべてのクライアントまたはそれらのグループを更新できます(この複雑さを追加しましょう)

アプリケーションを見ている生徒と教師がいると仮定します。それらは異なるレベルのデータアクセスを必要とします。グループを使用してハブ上でグループを分離しておくと、教師の情報を生徒に送信したり、生徒のデータを教師に送信したりすることがなくなります。

  1. ハブ参加では、それらを追加して、それらの役割または差別化機能に関連付けられたグループに参加できます。
  2. すべてのクライアントに送信すると、教師または生徒であるクライアントのグループに送信できるようになります。教師や生徒のために別のハブを作成するのではなく、それらはすべて同じハブ上にあります。

「それは悪いですか」と「大丈夫です」というあなたの質問に戻ると、これは実際のアプリケーションのコンテキストなしで確立するのは困難です。パフォーマンス以外に複数のハブを正当化できるシナリオは考えられません。

于 2012-12-29T15:07:01.320 に答える