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