var clients={};
exports.subscribe=function(req,res,id){
if(typeof id=='number'&&id>=0){
if(typeof clients[id]=='undefined')
clients[id]=[];
var cl=clients[id];
}
cl.push(res);
res.on('close',function(){
console.log('disconnect chat №',id);
cl.splice(cl.indexOf(res),1);
});
};
exports.publish=function(message){
var id=message['id'];
clients[id].forEach(function(res){
res.end('{"message":"'+message['body']+'"}');
});
clients[id]=[];
};
Когда пользователь подписывается на события он добавляется в массив clients[id_комнаты].
Тут же
res.on('close',function(){...
, если соединение закрыто клиентом то он удаляется из массива.
close срабатывает в случае если пользователь обновил страницу или закрыл вкладку/браузер. А если пользователь перешел на другу страницу то close не сработает. Как быть в данной ситуации?
В том числе мне не понятно как отличить одно соединение от другого.