簡體   English   中英

如何在網頁上保持 SignalR 連接活動?

[英]How to keep SignalR connection alive on web page?

我正在使用 ASP.NET MVC 5 並使用 SignalR v2.2.2(最新版本)。 我的應用程序運行正常,直到頁面空閑了一段時間(不確定現在的確切時間,但空閑 5 到 15 分鍾之間)。 一旦它閑置了一段時間,網頁上的按鈕就不再起作用(因為我認為它們需要活動連接)。

我解決這個問題的首選方法是能夠增加連接的超時時間。 我該怎么做?

如果這是不可能的,我如何檢測到頁面上的連接已斷開和/或如何在需要時重新建立連接?

我的網頁使用 javascript 和建立與 SignalR 集線器連接的代碼是這樣的:

$.connection.hub.start()
    .done(function () {
        // Does stuff here...
    })
    .fail(function (e) { console.log(e); });

謝謝

您可以實施 2 個食譜:

1.如果連接斷開則重新連接:

$.connection.hub.disconnected(function () {

    setTimeout(function () {
        $.connection.hub.start();
    }, 5000);
});

2.使用pingInterval以便您嘗試保持連接活動:

$.connection.hub.start({ pingInterval: 6000 })

Microsoft Docs

處理connectionSlow事件以在 SignalR 意識到連接問題后立即顯示消息,然后再進入重新連接模式。

處理重新連接事件以在 SignalR 知道斷開連接並進入重新連接模式時顯示消息。

處理斷開連接事件以在嘗試重新連接超時時顯示消息。 在這種情況下,重新與服務器重新建立連接的唯一方法是通過調用 Start 方法重新啟動 SignalR 連接,這將創建一個新的連接 ID。

現在有一個更簡單的方法: .withAutomaticReconnect()

看到這個帖子

暫無
暫無

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

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