Signalr 如何在信号机中停止轮询?
有没有办法停止Signal中的轮询服务器?如果发生错误,我想停止轮询服务器。轮询集线器是通过Signalr 如何在信号机中停止轮询?,signalr,Signalr,有没有办法停止Signal中的轮询服务器?如果发生错误,我想停止轮询服务器。轮询集线器是通过$.connection.hub.start()启动的,因此我假设可以通过$.connection.hub.stop()或类似的方式停止轮询集线器。但它似乎不起作用,即使在调用stop()之后,轮询仍在继续。有没有其他方法可以停止轮询 <script type="text/javascript"> var chatHub = $.connection.chatHub; var conne
$.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>
var chatHub=$.connection.chatHub;
var connection=$.connection.hub;
chatHub.addMessage=函数(消息){
$(“#消息”).append(“”+消息+” ”);
};
连接错误(函数错误){
$(“#消息”).append(“”+”连接错误:关闭连接“+” ”);
connection.stop();//这似乎不起作用
});
connection.start();
首先,您确定有必要吗?如果发生通信错误,显然您希望重试
但是,我查看了源代码,我的意思是,特别是在错误处理程序中,不可能调用.stop()
命令。它分别没有效果,因为在处理程序函数完成后,通信会在两秒钟后自动重新初始化
参见jquery.signalR.js(第340行):
我发现了一个解决方法:在处理程序函数中引发异常,导致轮询未重新初始化:
connection.error(function (error) { //$.connection.hub.error()
$('#messages').append('<li>' + "error connecting: closing connnection" + '</li>');
throw "Close SignalR connection";
});
connection.error(函数(error){/$.connection.hub.error()
$(“#消息”).append(“”+”连接错误:关闭连接“+” ”);
抛出“关闭信号机连接”;
});
如果使用集线器,可以停止集线器的连接:
$.connection.hub.stop();
该语法是否已更改为$.connection.hub.connection.stop()?对我来说就这些了,没有。这并没有明显改变我的错误,很抱歉浪费了你们的时间,现在是时候让我来读一下在特定集线器上停止连接,$.connection.myHub.stop()和更高版本之间的区别了。有什么想法,但我想我会设置一个沙盒,这样我就知道了。集线器共享一个连接。如果你不使用集线器,这是否意味着它无法完成?
$.connection.hub.stop();