2014-02-26 59 views
0

我需要从Web App检查SignalR HUB的可用性。我需要尝试从ASP .NET WebApp到SignalR HUB的时间间隔内连接,直到服务器变为在线。如何连续使用javascript连接到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

这可能有助于http://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events#continuousreconnect – Zaki

+0

我检查了它。我正在使用'$ .connection.hub.disconnected(function(){0} {0} {0} setTimeout(function(){...});'但是,如果我连接一次 - 一切正常,但如何重新连接服务器离线,在一段时间内?如何等待服务器?例如 - 每5秒检查一次是否可用? –

回答

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枢纽离线页面刷新是在固定时间间隔an后发生的d客户端正在尝试再次连接。