2014-02-26 104 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客戶端正在嘗試再次連接。