0

企業サイト (ASP.NET) 用に SignalR (1.1.2) チャットを開発していますが、サイトのほぼすべてのページに配置する方法がわかりません。次の質問があります。

  1. ユーザーが別のページに移動すると、ユーザーのオンライン/オフライン状態が変化します。

    私のチャット状態では、設定は Hub クラスの OnConnected/Ondisconnected コールバックで実行され、ユーザーが他のページに移動すると呼び出されます。

  2. すべてのページで $.connection.hub.start().done を使用して SignalR を初期化する必要がありますか? 回避策はありますか?

  3. クロスドメインとはどういう意味ですか? この定義がわかりません。

  4. Hub クラスの OnReconnected コールバックでどのロジックを移動する必要がありますか?

前もって感謝します。

4

1 に答える 1

3

SignalR を間違った方法で使用しようとしているようです。

アプリケーションが単一ページ アプリケーションでない限り、ページを変更するたびにハブを起動する必要があります。たとえば、1 つのページですべて JavaScript を介して実行されます。

ページを変更すると、事実上ハブへの SignalR 接続が閉じられるため、次のページで開始する必要があります。これにより、切断イベントが発生します。

接続するたびに、ユーザーに新しい ConnectionID が与えられるため、これをどのように処理するかによってオンライン/オフラインのステータスが変わります。

唯一の回避策は、シングル ページ アプリケーションを作成することです。

クロスドメインとは、クライアントから別の URL で SignalR メソッドを呼び出していることを意味します。

OnReconnected コールバック内で、再接続されたことをユーザーに通知するロジックを書きたいだけかもしれません。

于 2013-07-26T13:13:08.483 に答える