Asp.Net Core SignalR JavaScript客戶端重新連接

一、Asp.Net Core SingalR JavaScript客戶端當前版本 1.1.4

注:Asp.Net SignalR 的客戶端和 Asp.Net Core 的版本不同,目前不能通用。

 

二、當前版本的客戶端,沒有自動重新連接功能,需要自己處理重新連接。

在3.0之前,SignalR的JavaScript客戶端不會自動重新連接。您必須編寫將手動重新連接客戶端的代碼。

以下代碼演示了典型的手動重新連接方法:

  1. 創建一個函數(在本例中爲start函數)以啓動連接。
  2. start在連接的onclose事件處理程序中調用該函數。
async function start() {
    try {
        await connection.start();
        console.log("connected");
    } catch (err) {
        console.log(err);
        setTimeout(() => start(), 5000);
    }
};

connection.onclose(async () => {
    await start();
});

在放棄之前,真實世界的實現將使用指數退避或重試指定的次數。

        //處理鏈接關閉情況,onclose監聽服務器斷開和客戶端主動斷開  ,try catch 監聽服務器無法訪問等
        //在實際應用中,重新連接超過指定次數後放棄
        async function start() {
            try {
                await connection.start();
                console.log("connected");
            } catch (err) {
                console.log(err);
                setTimeout(() => start(), 5000);
            }
        };
        start();
        connection.onclose(async () => {
            console.info('監聽到鏈接關閉');
            await start();
        });

 

 

更多客戶端使用說明:

https://docs.microsoft.com/en-us/aspnet/core/signalr/javascript-client?view=aspnetcore-2.2

 

更多:

Asp.Net Core SignalR獲取集線器實例,從集線器外部發送消息

Asp.Net Core 2.0使用SignalR技術-入門

小程序WebSocket 簡單實例一

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章