码迷,mamicode.com
首页 > Web开发 > 详细

NetCore SignalR 重连逻辑实现

时间:2020-03-18 17:04:42      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:ref   var   c99   timeout   参考   ted   cti   creat   时间   

1-配置连接

技术图片
1 var connection = new signalR.HubConnectionBuilder() 
2         .withUrl("http://localhost:5000/doopstream") 
3         //重连函数,参数是重连间隔时间,单位毫秒
4         .withAutomaticReconnect([0, 3000, 5000, 10000, 15000, 30000])
5         .configureLogging(signalR.LogLevel.Information)
6         .build();
View Code

2-启动逻辑

技术图片
 1 //启动模块
 2     async function start(){ 
 3         connection.start().then(()=>getdata()).catch(err => {
 4         var msg="strat:"+err.toString();
 5         console.error(msg);
 6         setTimeout(()=>start(),5000);
 7     });
 8     }
 9     //触发启动
10    start();
View Code

3-重连成功后的处理逻辑

技术图片
1 //重连成功后的处理机制
2     connection.onreconnected((connectionId)=>{
3         
4         console.log("onreconnected:"+connectionId);
5         getdata();
6     });
View Code

4-连接关闭后的处理逻辑

技术图片
1 //连接关闭后的处理机制
2     connection.onclose(async (error)=>{
3         var msg="close:"+error.toString();
4         console.error(msg);
5          await start();
6     });
View Code

5-数据接收处理逻辑

技术图片
 1 /接收数据逻辑
 2 function getdata() {
 3         console.log("connected");
 4         connection.invoke("Subscribe", ‘test‘).catch(err => console.error(err.toString()));
 5         connection.on("Receive", function (ch, message) {
 6             console.log(message);
 7             var p = document.createElement("p");
 8             p.innerHTML = ch + ‘#‘ + message;
 9             var div = document.getElementById("div");
10             div.appendChild(p);
11         }); 
12     };
View Code

PS:SignalR js 库需要用 @microsoft/signalr@3.1.2 库,不然没有 withAutomaticReconnect 这个函数

6-参考文档

https://docs.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore-3.1

PS:不知道是我的理解能力太差了,还是微软的中文文档没写好,折腾了一小会搞懂了,记录一下

NetCore SignalR 重连逻辑实现

标签:ref   var   c99   timeout   参考   ted   cti   creat   时间   

原文地址:https://www.cnblogs.com/ganqiyin/p/12518473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!