Como reutilizar a conexão redis no socket.io
Aqui está meu código usando socket.io como WebSocket e back-end com pub / sub redi
var io = io.listen(server),
buffer = [];
var redis = require("redis");
var subscribe = redis.createClient(); **<--- open new connection overhead**
io.on('connection', function(client) {
console.log(client.request.headers.cookie);
subscribe.get("..", function (err, replies) {
});
subscribe.on("message",function(channel,message) {
var msg = { message: [client.sessionId, message] };
buffer.push(msg);
if (buffer.length > 15) buffer.shift();
client.send(msg);
});
client.on('message', function(message){
});
client.on('disconnect', function(){
subscribe.quit();
});
});
Cada nova solicitação io criará uma nova conexão redis. Se alguém abrir o navegador com 100 guias, o cliente redis abrirá 100 conexões. Não parece legal.
É possível reutilizar a conexão redis se os cookies forem iguais? Portanto, se alguém abrir muitas guias do navegador, também trate como uma conexão aberta 1.