簡體   English   中英

如何使用javascript連續連接到SignalR Hub?

[英]How to connect to SignalR Hub continuously using javascript?

我需要從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);
}
};

問題是如果集線器啟動一次並且服務器不在線,則應用程序不會重新連接到它。 怎么解決呢?

解決了。

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集線器處於脫機狀態,則會在固定間隔后進行頁面刷新,並且客戶端將嘗試再次連接。

當集線器斷開連接時,只需要調用start方法,而不是重新加載頁面。

  $.connection.hub.disconnected(function (error) {
    console.log('Disconnection error :' + error)
    $.connection.hub.start(function (connection) {
      console.log("reconnected:" + connection)
    });
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM