app.get('/watch/:id',function(req,res){
roomid = req.params.id;
Rooms.find({"id":roomid},function(err,rooms){
if(err !== null)console.log(err);
//res.send(rooms);
res.render('index',{title:'Hello'});
console.log(rooms);
});
io.on('connection',function(socket){
console.log('socket '+socket.id.toString()+' was connected');
socket.on('join',function(r_id){
console.log('type of roomid '+typeof(roomid));
console.log('type of r_id '+typeof(r_id));
console.log('r_id='+r_id+'\n');
console.log('roomid='+roomid);
socket.join(r_id);
var clients_in_the_room = io.sockets.adapter.rooms[r_id];
for (var clientId in clients_in_the_room ) {
console.log('client: %s', clientId); //Seeing is believing
}
});
// socket.join(roomid);
socket.on('message',function(msg,room_id){
console.log('messg in '+room_id+' room\n'+'room_id type is ' + typeof(room_id));
var rid = room_id.toString();
io.to(room_id).emit('message_server',msg);
});
socket.on('message_server',function(msg){
console.log('message_server '+msg);
});
});
//res.sendfile('room.html')
});
При первом редиректе на '/watch/:id' все нормально, но когда в следующий раз меня редиректит на '/watch/:id ( при условии что предыдущее соединение было не закрыто) код, который идет после
io.on('connection',function(socket){
начинает дублироваться, и сообщения выводятся по 2, 3 и т.д раз. Как сделать чтобы сообщение выводилось только 1 раз ?