我的编程空间,编程开发者的网络收藏夹
学习永远不晚

socket.io断线重连的几种场景及处理方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

socket.io断线重连的几种场景及处理方法

最近有做一个项目,类型聊天室的需求,自然也就选用了socket.io。搭建起来的确快,不管是km上还是外面,大把聊天室的demo,当然,只是demo,简易聊天室,而我们的需求当然不会那么简单啦,于是,就开始填坑了。

本机调一切都好,布上服务器之后,各种异常就开始出现了。

代码只帖一点片段吧,这里假定你对socket.io有了一定的了解。

io.on('connection', (socket) => {
    //加入房间
    socket.join(roomID, () => {
        console.log('join');
    });
 
    //退出房间
    socket.on('disconnect', () => {
        console.log('disconnect');
    })
});

这是server端的代码,很典型的一个流程,建立连接、加入房间、退出房间。不过在服务器上实际运行当中发现,服务器并不会那么地稳定,会偶尔出现闪断的情况,这个时候就会触发到disconnect.

我们都知道,socket.io是自带有断线重连的机制的,不过断线也分为好几种场景,下面我们来分别看一看。

1、客户端主动断线。

这种基本上就是正常的情况,服务端会收到disconnect事件,从而做相应操作。

2、服务端主动断线。

服务端主动触发socket.disconnect(),这种情况下客户端会收到disconnect事件,但是不会触发reconnect重连事件,因为socket已经被断开了。

3、服务端重启

每次发布的时候,服务端重启,都会触发到客户端的disconnect事件,而后会触发重连事件 reconnecting->reconnect->connect。服务器出现异常的时候也会触发重连。

4、客户端断网

在客户端掉线的情况下,服务端收不到任何事件。客户端会收到disconnect事件,然后触重连事件的循环,如果不设置最大重连次数的话,会一直循环下去。

所以对于断线重连,客户端跟服务端都需要做处理。

下面是客户端对断线重连的设置方法

var socket = io("/?room_id=" + room_id, {
    //设置最大重试次数
    reconnectionAttempts: 5
});
 
//重试失败后会调用reconnect_failed事件
socket.on('reconnect_failed', function () {
    console.log('reconnect_failed');
});

总结

到此这篇关于socket.io断线重连的几种场景及处理方法的文章就介绍到这了,更多相关socket.io断线重连场景内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

socket.io断线重连的几种场景及处理方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

socket.io断线重连的几种场景及处理方法

Socket.IO是一个库,可用于在浏览器和服务器之间进行实时,双向和基于事件的通信,下面这篇文章主要给大家介绍了关于socket.io断线重连的几种场景及处理方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-03-19

socket.io断线重连的处理方法是什么

本篇内容介绍了“socket.io断线重连的处理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这里假定你对socket.io有了一
2023-07-05

编程热搜

目录