最近写了一个简单的 Socket.IO 程序,代码如下:
var io = require('socket.io')(8801);
var redis = require('reds');
io.on('connection', function(socket) {
var client = redis.createClient();
client.on('message', function(channel, data) {
var message = JSON.parse(data);
io.emit(message['type'], message);
});
client.subscribe('node');
});
这段代码工作正常,但我的疑惑是:在connection
回调函数执行完以后,client
变量不就被垃圾回收了吗?然后到 redis 的连接应该会断开了啊,为什么实际上没有断开呢?