我需要从Web App检查SignalR HUB的可用性。我需要尝试在间隔期间从ASP .NET WebApp连接到SignalR HUB,直到服务器上线。
我正在使用这个javascript。
interval = setInterval(checkifconnected, 3000);
function checkifconnected() {
if ($.connection.hub && $.connection.hub.state ===
$.signalR.connectionState.disconnected) {
$.connection.hub.start();
if ($.connection.hub && $.connection.hub.state ===
$.signalR.connectionState.connected) {
clearInterval(interval);
}
};
问题是如果集线器启动一次且服务器未联机,则应用程序不会重新连接到它。怎么解决?
答案 0 :(得分:0)
解决。
if ($.connection.hub && $.connection.hub.state === $.signalR.connectionState.reconnected) {window.location.reload()};
第一次运行后
$.connection.hub.start();
连接状态是
$.connection.hub.state === $.signalR.connectionState.reconnected
我只是使用
刷新一个窗口window.location.reload()
因此,如果SignalR集线器处于脱机状态,则会在固定时间间隔后发生页面刷新,并且客户端正在尝试再次连接。
答案 1 :(得分:0)
集线器断开连接后,您只需调用start方法,而不是重新加载页面。
$.connection.hub.disconnected(function (error) {
console.log('Disconnection error :' + error)
$.connection.hub.start(function (connection) {
console.log("reconnected:" + connection)
});
});