最近有做一个项目,类型聊天室的需求,自然也就选用了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(),这种情况下客户端会收