質問
SignalRのポーリングサーバーを停止する方法はありますか?エラーが発生した場合、投票サーバーを停止したい。ポーリングハブは開始されます $.connection.hub.start()
, 、だから私はそれがで止めることができると思いました $.connection.hub.stop()
またはそのようなもの。しかし、それはうまくいかないようです、呼び出しの後も投票は続きます stop()
. 。投票を止める別の方法はありますか?
<script type="text/javascript">
var chatHub = $.connection.chatHub;
var connection = $.connection.hub;
chatHub.addMessage = function (message) {
$('#messages').append('<li>' + message + '</li>');
};
connection.error(function (error) {
$('#messages').append('<li>' + "error connecting: closing connnection" + '</li>');
connection.stop(); //This doesn't seem to work
});
connection.start();
</script>
解決
ハブを使用している場合は、ハブの接続を停止できます。
$.connection.hub.stop();
他のヒント
まず、それは必要ですか?通信エラーが発生した場合、明らかに再試行したいと思います。
しかし、私はソースコードを調べましたが、特にエラーハンドラーでは呼び出しができないことを意味します .stop()
指図。それぞれ、ハンドラー機能が終了した後、通信が2秒後に自動的に再現されるよりも効果はありません。
jquery.signalr.js(340行目)を参照してください。
$(instance).trigger("onError", [data]);
window.setTimeout(function () {
poll(instance);
}, 2 * 1000);
私は1つの回避策を見つけました:ハンドラー関数で例外をスローします。
connection.error(function (error) { //$.connection.hub.error()
$('#messages').append('<li>' + "error connecting: closing connnection" + '</li>');
throw "Close SignalR connection";
});
所属していません StackOverflow