我想在断开socket.io事件发生后将数据从服务器发送到客户端。
服务器:
const clients = {};
io.on('connection', socket => {
clients[socket.id] = socket;
console.log('connect : ' + socket.id);
socket.emit('socket-connect', 'connected');
socket.on('disconnect', () => {
socket.emit('socket-disconnect', 'disconnected');
delete clients[socket.id];
console.log('disconnect : ' + socket.id);
});
});
客户:
const socket = openSocket('localhost');
socket.on('socket-connect', data => {
console.log(data);
});
socket.on('socket-disconnect', data => {
console.log(data);
});
如果套接字已连接,则服务器会向客户端发送连接消息,并且可以正常工作,但是如果发生断开连接,则不会向客户端发送中断的消息。
服务器上的 console.log('disconnect : ' + socket.id);
显示与socket.id断开连接。
我在服务器和客户端上都使用socket.io v2.0.4。
如果发生套接字断开连接事件,如何从服务器发送数据?
答案 0 :(得分:1)
事件:disconnect
在断开连接时被触发。这仅表示出于某种原因,客户端和服务器之间没有连接。
因此,在这种情况下,由于客户端未连接,因此无法将数据发送到客户端。如果客户端的网络不可用(读取Internet故障)或客户端环境(例如浏览器)崩溃或用户关闭了标签页,则可能会断开连接。