5

私のSignalRアプリでは、ページで期待どおりにコールバックが発生します。ページがしばらく放置されている場合、ページが更新されるまで、そのページでコールバックは呼び出されなくなります。

これは、サイトのセッションが期限切れになっていることが原因である可能性があります(クライアントのセッションIDを使用してクライアント通知を呼び出します)。

私はここで機能について読みKeepAlive、SignalRコードでそれへのいくつかの参照を見ることができます。クライアント側のキープアライブを実装する必要があるかどうかはわかりません。実装する必要がある場合は、どのように実行しますか?

4

2 に答える 2

3

ご覧くださいhttp://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events

  $.connection.hub.disconnected(function() {
      alert('disconnected')
      setTimeout(function() {
        alert('reconnecting')
        $.connection.hub.start();
      }, 5000); // Restart connection after 5 seconds.
    });
于 2013-12-02T04:40:02.293 に答える
0

私は実験もドキュメントもチェックしていませんが、あなたの仮定は理にかなっています。SignalRは、さまざまな理由でセッションをサポートしていません。セッションからの読み取りをサポートしていない場合は、セッションの有効期限が更新されないことを期待するのが妥当です。ただし、実際にセッションIDをクライアントIDとして使用する必要がある場合(使用しないでください)、一種のキープアライブを実装するのは簡単です。何もしなくても、最も簡単な方法でサーバー(たとえば、セッション対応のHTTPハンドラー)を呼び出すJSを作成するだけです。これは、セッションの有効期限を更新するためにのみ機能します。

于 2012-05-21T04:41:49.497 に答える