【发布时间】:2018-02-01 01:55:01
【问题描述】:
我通过 onConnection 和 onDisconnect 事件统计在线 websocket 的数量:
const socketIo = require('socket.io');
var on_connect = 0;
var on_disconnect = 0;
var port = 6001;
var io = socketIo(port, {
pingTimeout: 5000,
pingInterval: 10000
});
//I have only one NameSpace and root NS is not used
var ns1 = io.of('ns1');
ns1
.on('connection', function (socket) {
on_connect += 1;
socket.on('disconnect', function (reason) {
on_disconnect += 1;
});
});
...
var online = on_connect - on_disconnect;
...
但是online 值不等于io.engine.clientsCount 值。
随着时间的推移,online 值和io.engine.clientsCount 值之间的差异越来越大。
为什么会这样?
需要做什么来解决这个问题?
【问题讨论】:
-
你使用的是什么版本的socket.io?
-
"socket.io": "^2.0.1"
-
@gvmani 已经解决了这个问题:stackoverflow.com/a/47987040/3743683
标签: node.js websocket socket.io