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

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

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

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

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

10 ответов

34 просмотра

Сокеты

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 сервер если что

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Карта сайта