У меня есть несколько чатов. В настоящее время я храню список пользователей чата в переменной php. Если пользователь входит или выходит из комнаты, имя пользователя добавляется / удаляется из этого списка.
Чтобы сделать это хранилище постоянным, я использую memcached. Чтобы обновить статус комнаты чата и отправить список пользователей всем пользователям в комнате чата, я использую периодические запросы ajax, которые загружают список пользователей в браузеры пользователей, которые находятся в чате.
Хорошо работает. Но я сомневаюсь, что рассылка всем пользователям чата каждые двадцать секунд - это хорошая идея, если в чате несколько сотен человек.
Как чаты обычно решают эту проблему?