我的代码 不断用 setinterval 取 redis 的数据
//连接事件
io.sockets.on('connection', function (socket) {
console.log('有新用户进入...');
//叠加当前在线人数
onlineCount++;
function refresh() {
client.mget(['lee'], function (err, res) {
//接收步骤省略
socket.volatile.emit('onlinenums', {finex : finex});
});
}
var once = setTimeout(refresh,100);
var tweets = setInterval(refresh, 2000);
console.log('当前用户数量:'+onlineCount);
//客户端断开连接
socket.on('disconnect', function() {
if(onlineCount > 0 ){
//当前在线用户减一
onlineCount--;
console.log('当前用户数量:'+onlineCount);
}
});
});
//启动HTTP服务,绑定端口3000
app.listen(3000, function(){
console.log('listening on *:3000');
});
这个socket一直挂着 而我的CPU 每七天由于这个node程序 爆掉一次
这篇帖子 也没看明白 类似的问题 http://cnodejs.org/topic/570d...
客户端断开连接后 interval没有clear点,处理一下就可以了