@Lepilov

Как устроена система нотификаций на тостере?

Интересует как реализована система нотификаций на примере этого сайта (или подобная). При получении ответа на вопрос мне надо обновить страницу что бы увидеть оповещение + на почту приходит уведомление.
С помощью каких инструментов и какая бизнес логика для этого используется ?
  • Вопрос задан
  • 275 просмотров
Решения вопроса 3
profesor08
@profesor08
Грубо говоря есть некоторый набор событий (действий) при которых могут генерироваться уведомления, например упоминание никнейма в сообщении. План действий примерно такой.
- юзер отправляет сообщение
- некий парсер проверяет наличие никнеймов
- если никнеймы есть, то проверяет подписаны ли найденные юзеры на уведомления такого типа, когда их упоминают в сообщениях
- если подписаны, то в отведенную табличку для уведомлений записывается уведомление для конкретного юзера

Далее, когда упомянутый, в сообщении, юзер посетит сайт, то специальный отведенный механизм сделает запрос бд на наличие уведомлений (это может быть некий кеш). Если есть, то выведет уведомление. А когда юзер перейдет по нему, то отметит это уведомление в бд просмотренным.
Ответ написан
DevMan
@DevMan
> С помощью каких инструментов
разных. зависит от задач и используемого стека. и даже в одном стеке есть множество вариантов.

> какая бизнес логика для этого используется
примитивная: есть событие –> проверка или пользователь хочет его получить –> отправка уведомления или нет.
никакой ракет–сайенс
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Делается на стороне бэкенда с использованием базы данных.
А фронт по API запрашивает, есть ли уведомления для данного юзера и отображает их.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Therapyx
@Therapyx
Data Science
много реализаций придумать можно. Банальный и простой пример
- Когда человек нажимает кнопочку "отправить" - идет проверка текста на наличие паттерна "@Nichname,"
- Если есть, то
1) Выбрать емаил юзера из патерна выше
2) Добавить "flag" в DB юзера, что у него есть непрочитанное сообщение (можно как каунтер, к примеру что происходит в соц. сетях). А так же добавить всю мета-инфу о сообщении.
3) Отправить емаил и инфу о сообщении
4) Когда юзер обновляет страницу или заходит в профиль, то идет проверка ДБ на наличие поставленного флага. Если да, узкаывает на наличие оповещения и достает сохраненную мета-инфу по айди этого запроса.
5) при прочтении оповещений флаг обнуляется. И так по кругу.

Это просто что первое в голову пришло. Как уже писал выше - реализаций можно сделать десятки если хорошо подумать)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы