温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2023-03-17 13:38:20 来源:亿速云 阅读:201 作者:iii 栏目:开发技术

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

这里假定你对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断线重连的处理方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI