У меня вопрос на алгоритм есть чатик при подключении клиента, бекенд выгружает

ему последние 10 сообщений

клиент, долистав до верха этих 10 сообщений, запрашивает "дай мне еще 10 сообщений до %ID%"

все бы ничего, но есть функционал цитат, ну как в телеге, над ответом отрисовывается плашка с цитируемым сообщением

вот как так сделать, чтобы при подключении выгружались последние 10 сообщений, и если среди них есть ответы - то они отрисовывали и цитаты?

при этом есть функционал, как в телеге, можно кликнуть на цитату и отправиться к сообщению

всё что я придумал, щас выгружаются 10 последних сообщений, и если среди них есть ответы, то и первые вопросы выгружаются, то есть [2,5,.... 20-30]
но тогда появляется баг, что клиент, долистав наверх пошлет сообщение, не "дай мне 10 сообщений меньше 20", а "10 сообщений меньше 2", и поэтому сервер не выгрузит 3,4,6,7 и так далее, клиент о них ничего не узнает

протокол на бекенде менять не очень хочется, клиенты разлетелись по вебу, мобилкам и прочему, но видимо придется

какие-нибудь идеи? всё что я придумал, не лишено багов 😄

1 ответов

55 просмотров

Эту проблему раньше решал вк. Где-то была статья, как они хранят сообщения. Попробуй в их направлении поработать. А так, думаю, только дополнительными запросами к БД придётся делать.

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

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

Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Решил тут попробовать embassy на bluepill. Все установил, собрал blink и успешно залил с помощью St link 2 китайского. Но после этого чип шиться перестал. На форумах прочел, ч...
Lukutin R2AJP
6
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Карта сайта