在我的MVC4 ASP.NET网页上,我在javascript中有以下代码来处理与服务器的连接并重新连接到服务器(如果由于某种原因连接丢失了服务器)。
问题是$.connection.hub.start().done()
没有被调用以响应$.connection.hub.start()
重新连接(它仅在第一次发出时被调用)。这是我想知道的错误吗?如果没有,是否有相同的方法提醒客户start()
已完成。
// Start the signalR connection and request the default page
$.connection.hub.start().done(function () {
console.info("$.connection.hub.start().done");
hubProxy.server.sendDefaultPage();
});
//if server goes away - reconnect to it
$.connection.hub.disconnected(function () {
console.info("disconnected");
setTimeout(function () {
$.connection.hub.start();
}, 5000); // Restart connection after 5 seconds.
});
答案 0 :(得分:1)
您可以将连接启动逻辑放入函数中:
function startConnection() {
// Start the signalR connection and request the default page
$.connection.hub.start().done(function () {
console.info("$.connection.hub.start().done");
hubProxy.server.sendDefaultPage();
});
}
//if server goes away - reconnect to it
$.connection.hub.disconnected(function () {
console.info("disconnected");
setTimeout(startConnection, 5000); // Restart connection after 5 seconds.
});
然后将在初始连接和重新连接上调用.done()回调。