Это было слишком долго, чтобы уместиться в комментариях, поэтому я добавил в качестве ответа.Чтобы уточнить, вот проблема, которую я вижу в том, как вы запускаете событие чата.Давайте пройдемся по сценарию.
var numb = 1;
Два пользователя (Пользователь A и Пользователь B) подключаются к сокету и помещаются в комнату "room1".Теперь онемение должно быть увеличено на ваш код, и теперь онемение будет равно == 2.
Теперь пользователь A (который находится в "room1") генерирует событие "chat".Вот проблема, которую я вижу:
socket.on('chat', function(data) {
chnm.in("room" + numb).emit('chat', data)
})
Событие чата пользователя A отправлено в "room2", но пользователь A находится в "room1".Это происходит потому, что онемение == 2 в этой точке сценария, и вы используете онемение для генерации этого события, в основном это то, что происходит chnm.in("room" + 2)
.Пользователь B не получает излучение пользователя A, поскольку оно было отправлено не в ту комнату (room2).Если я неправильно понял, что вы пытаетесь сделать, пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ: В соответствии с просьбой, здесь приведены некоторые модификации вашего кода, которые я успешно проверил локально.Два пользователя в каждой комнате.
var numb = 1;
var chnm = io.of('/STchat');
app.get('/STchat', function(req, res) {
res.sendFile('C:\\Users\\tuna\\Desktop\\JUSTFOL\\views\\Tchat.html');
chnm.once('connect', function(socket) {
// store the room in a var for convenience
var room = "room" + numb;
// join socket to the next open room
socket.join(room);
// store room on socket obj for use later - IMPORTANT
socket.current_room = room;
// log some stuff for testing
console.log('made socket connection', socket.id);
console.log("Joined room: ", socket.current_room);
// Check room occupancy, increment if 2 or more
chnm.in(room).clients(function(err, clients) {
if (clients.length >= 2) {
numb++;
}
});
socket.on('chat', function(data) {
// emit to that sockets room, now we use that current_room
chnm.in(socket.current_room).emit('chat', data);
});
socket.on('disconnect', function() {
console.log('socket disconnected');
});
});
});
app.get('/StvChat', function(req, res) {
res.sendFile(__dirname + '/views/VideoC.html');
});