Я работаю над nodejs и angularjs.Я использую socket.io, чтобы показать прогресс текущего процесса.
На стороне клиента
let socket = io.connect();
socket.emit('room',{roomId:user_id});
socket.on('data',function(data){
console.log("data -=- ",data);
})
на стороне сервера
io.on('connection',function(socket){
socket.on('disconnect', function(de) {
console.log("disconnected",de)
});
socket.on('room',function(d){
socket.join(d.roomId);
})
})
app.use(function(req,res,next){
req.io = io; next();
});
Я отправляю roomId смой почтовый запрос в теле;Когда вызывается API, я собираю roomId из req.body и затем генерирую событие.
req.io.sockets.in(roomId).emit('data',{roomId:roomId,msg:'message'});
Когда я запускаю это на локальном хосте для одного пользователя, оно работает правильно.Но когда я вызываю API, который генерирует событие для двух отдельных пользователей с отдельным roomId.Пользователь, который запрашивает первым, ничего не получает.
Если пользователь user1 с roomId = 1 подключается непосредственно перед user2 с roomId = 2, то user1 не получает событие «data».Только user2 получает его.
Я не мог найти никакого решения для этого.Что я здесь не так делаю?Пожалуйста, помогите.