- 在服务器上,断开连接事件在网络连接后触发 掉线,客户端重新连接。
客户端代码:
var url ='192.168.1.101', port = '80',
socket = io.connect('http://' + url + ':' + port, {
'reconnect': true,
reconnection: true,
reconnectionDelay: 1000,
reconnectionDelayMax: 5000,
timeout: 1000
});
//重连事件
socket.on('reconnect', function (nr) {
console.log('reconnected, nr: ', nr);
});
//连接事件
socket.on('connect', function () {
console.log('connected');
});
//断开事件
socket.on('disconnect', function () {
console.log('disconnected');
});
服务器代码:
'use strict';
var fs = require('fs'),
express = require('express'),
app = express(),
io = require('socket.io'),
server = require('http').createServer(app),
compress = require('compression'),
socket;
app.use(compress({level: 9}));
server.listen(port, url);
socket = io.listen(server, {'pingTimeout': 1000, 'pingInterval': 3000});
socket.on('connection', function (client) {
console.log('client connected');
client.on('disconnect', function () {
console.log('client disconnected');
});
});
- Result on server if client reconnects: > client connected > client disconnected Can someone explain to me why this is happening?
最佳答案
客户端和服务器在连接处于事件状态时交换心跳消息。当服务器停止接收这些消息时,它将声明客户端已断开连接。客户端也可以显式断开连接。
您遇到的可能是第一种情况。客户端有一个重试逻辑,所以只要连接断开,它就会尝试重新连接。我不确定为什么会发生这种情况,您可能想查看浏览器控制台中的网络选项卡,了解在请求/响应级别发生了什么。
关于javascript - Node.js Socket.io 错误 : disconnect event is triggered after connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385682/