Я экспериментирую с node.js socket.io и разными комнатами. У меня есть объект псевдонимов со всеми подключенными пользователями, но проблема в этом объекте. Я не могу хранить повторяющиеся значения для идентификаторов пользователей, поэтому я не могу заставить одного и того же пользователя использовать разные комнаты. Теперь я хотел бы сделать другой объект для каждой комнаты вместо этого объекта псевдонимов для всех пользователей. Итак, как я могу сделать что-то вроде этого: nicknames [specific_room] [user.id] = остальная часть кода ..? Итак, тогда у меня должен быть отдельный список данных для каждой комнаты? Или я должен использовать динамические имена переменных для каждой отдельной комнаты? Что вы можете предложить?Node.js многомерные имена объектов и динамических переменных
nicknames[user.id]={
'nickname': user.name,
'socketId': socket.id,
'room': room,
};
результат:
{ '1':
{ nickname: 'User1',
socketId: '/#0rb7zbg0RInwKAaMAAAC',
room: '4444',
},
'3':
{ nickname: 'User 2',
socketId: '/#tGZPL8IUPvUoie1CAAAD',
room: '3333',
}
}
Что бы я хотел достигнуть:
{ 3333 { { '1':
{ nickname: 'User1',
socketId: '/#0rb7zbg0RInwKAaMAAAC',
},
'3':
{ nickname: 'User 2',
socketId: '/#tGZPL8IUPvUoie1CAAAD',
}
}
}
4444 {
}
}
где 3333 и 4444 являются номер уникальные идентификаторы. Надеюсь, я дал понять.
Существует что-то например 'socket.join (room_id_here)' и 'socket.leave (room_id_here)'. Присоединиться добавит пользователя в идентификатор комнаты, который указан и уйдет, удалит пользователя из этой комнаты. Я тоже экспериментирую с NodeJS и socket.io :) – Jer