2

したがって、シグナルはすべて正常に機能し、データをクライアントにプッシュしても問題ありません。接続を維持するために ajax 呼び出しを使用して独自のキープアライブを実装しました。しかし、私は読んでいて、私が試しているオプションがあります:

GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(30);

しかし、私の問題は、キープアライブの送信に失敗した場合、javascript 側でどのようにキャプチャするのですか?

これが接続を維持するためにデータをプッシュするサーバーである場合、それはクライアントが失敗したかどうかを決して知らないことを意味しますか?

または、javascript は connection.error をスローしますか?

クライアントのネットワーク ケーブルを引き抜きたいのですが、XX 秒後にネットワーク接続が失われたというメッセージが表示されます。Atm ajax呼び出しを使用してこれを機能させていますが、キープアライブ値を使用してこれは可能ですか?

4

1 に答える 1

2

これは、LongPolling を除くすべてのトランスポートで既に実装されています。

デフォルトでは、2 つのキープアライブに失敗した場合、JS クライアントは再接続に入ります。

再接続イベントに結び付けたい場合は、次のことができます。

$.connection.hub.reconnecting(function() {
    // Your logic
});

接続が再接続される可能性があることを示すイベントに結び付けたい場合は、次のことができます。

$.connection.hub.connectionSlow(function() {
    // Your logic
});

デフォルトでは、クライアントは一定時間後に再接続の試行を停止し、不必要な再接続イベントを回避するために切断状態に移行することに注意してください。ダウンタイムがあっても、接続が常に接続されていることを確認したい場合は、ここで私の答えを参照してください:クライアントの再接続

于 2013-02-28T22:19:04.300 に答える