Подтвердить что ты не робот

Socket.io чат с отдельными комнатами

Я начал изучать node и socket.io.

Я уже создал простое приложение для чата, и я поражен тем, насколько он прост.

Теперь я хотел бы немного поработать и предоставить список онлайн-пользователей, которые имеют возможность общаться друг с другом частным образом.

Каким будет лучший способ приблизиться к этому?

Я прочитал о 0.7 новой функции комнаты. Это будет способ пойти? Динамично создавать новую комнату каждый раз, когда 2 пользователям нужно общаться чатом? Но как второй пользователь будет уведомлен о создании новой комнаты, чтобы он мог туда подключиться?

Лучше ли справляться со всей вышеприведенной логикой? Храните комнаты и пользователей на стороне сервера и прокручивайте их каждый раз и отправляйте сообщения соответствующим пользователям?

Спасибо

4b9b3361

Ответ 1

Если вам нужна только одна функция, чтобы два человека могли отправлять сообщения друг другу (а не группы людей, чтобы иметь комнату), тогда логика может быть примерно такой:

  • Когда пользователь подключается, храните свое соединение в объекте, указанном их именем пользователя (или в любой другой структуре данных, которая гарантирует, что вы можете найти конкретное пользовательское соединение).
  • Когда Боб хочет поговорить с Джеффом, отправьте серверу сообщение о том, что такое.
  • Сервер просматривает соединение Jeff Socket.IO в объекте с шага 1.
  • Сервер использует это соединение, чтобы отправить личное сообщение Jeff (и только Jeff).

Ответ 2

Хей Томас

Если только двум пользователям, говорящим вам, не нужно использовать публикацию, все это просто отправляет это сообщение от клиента на сервер и позволяет серверу найти другого клиента и отправить его.