секунды делается запрос к API, чтобы узнать есть ли новые сообщения. Сокеты не подключали, чтобы не усложнять, но вопрос не про это :)
Меня смущает, что каждые 3 секунды на бэкэнде делается запрос в базу. И большинство этих запросов не отдают новой информации.
Как можно улучшить это все? Я придумал только положить id последнего сообщения в редис, при запросе к api присылать id последнего сообщения на клиенте и дергать сначала редис, а базу дергать только если они не совпадают.
Сокеты
Так они же не решают проблему постоянных запросов к базе :)
Уточню. Чат не между людьми в этой системе. Это чат оператора с людьми в чат-ботах мессенджеров. Т.е. сообщения из мессенджеров кладутся в базу сначала.
В твоём случае при поступлении новых сообщений в бд надо как ты и сказал положить в какую нибудь прослойку редис или ребитмк. Далее дергать её, ну и обновлять своевременно.
Спасибо! Попробую так сначала. Не хочется сокеты еще поднимать.
можно server sent events (SSE) если ws и php берите ratchet (reactphp)
Спасибо за ответ! Да, лучше взять ratchet. SSE на клиенте вроде просто, но на php сходу не нашел как сделать.
с помощью ratchet можно и ws и sse и http сервер если что
А. Понял, спасибо!
Обсуждают сегодня