207 похожих чатов

Сорри за оффтоп, не знаю где спросить. Компонент чата. Каждые 3

секунды делается запрос к API, чтобы узнать есть ли новые сообщения. Сокеты не подключали, чтобы не усложнять, но вопрос не про это :)

Меня смущает, что каждые 3 секунды на бэкэнде делается запрос в базу. И большинство этих запросов не отдают новой информации.

Как можно улучшить это все? Я придумал только положить id последнего сообщения в редис, при запросе к api присылать id последнего сообщения на клиенте и дергать сначала редис, а базу дергать только если они не совпадают.

10 ответов

8 просмотров

Сокеты

Vadim- Автор вопроса
Max Kiner
Сокеты

Так они же не решают проблему постоянных запросов к базе :)

Vadim- Автор вопроса
Max Kiner
Решают

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

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

Vadim- Автор вопроса
Aleksandr Drozdov
В твоём случае при поступлении новых сообщений в б...

Спасибо! Попробую так сначала. Не хочется сокеты еще поднимать.

Vadim
Спасибо! Попробую так сначала. Не хочется сокеты ...

можно server sent events (SSE) если ws и php берите ratchet (reactphp)

Vadim- Автор вопроса
Сергей Rekryt Крупкин
можно server sent events (SSE) если ws и php берит...

Спасибо за ответ! Да, лучше взять ratchet. SSE на клиенте вроде просто, но на php сходу не нашел как сделать.

Vadim
Спасибо за ответ! Да, лучше взять ratchet. SSE на ...

с помощью ratchet можно и ws и sse и http сервер если что

Похожие вопросы

Обсуждают сегодня

Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
Всем привет! Стоит задачка, выбрать из выпадающего списка конкретный цвет. Пока реализовал через активацию контрола списка и выбора несколькими нажатиями стрелки вправо до нуж...
Роман.С
9
Карта сайта