一、Asp.Net Core SingalR JavaScript客戶端當前版本 1.1.4
注:Asp.Net SignalR 的客戶端和 Asp.Net Core 的版本不同,目前不能通用。
二、當前版本的客戶端,沒有自動重新連接功能,需要自己處理重新連接。
在3.0之前,SignalR的JavaScript客戶端不會自動重新連接。您必須編寫將手動重新連接客戶端的代碼。
以下代碼演示了典型的手動重新連接方法:
- 創建一個函數(在本例中爲
start
函數)以啓動連接。 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技術-入門