quota guarded uploader and thumbs generator for progressive image load
Go to file
2023-10-18 13:00:14 +03:00
.gitea/workflows feat: added to CI/CD pipline 2023-10-15 15:42:56 -03:00
src both 2023-10-18 13:00:14 +03:00
.gitignore init-rust 2023-09-28 02:08:48 +03:00
Cargo.lock handle-disconnect-fix-payload-format 2023-10-16 16:22:54 +03:00
Cargo.toml handle-disconnect-fix-payload-format 2023-10-16 16:22:54 +03:00
Dockerfile debug: rm LetsEncrypt dir 2023-10-12 10:49:27 -03:00
nginx.conf.sigil debug: Sigil with buffering off 2023-10-13 18:01:31 -03:00
README.md jsonvalue-fix 2023-10-16 19:40:45 +03:00

Presence

"Присутствие" - это сервер для пересылки сообщений в реальном времени. Текущая версия использует SSE-транспорт.

ENV

  • API_BASE
  • AUTH_URL
  • REDIS_URL

Как это работает

При каждом обращении к /connect создаётся отдельная асинхронная задача с подписками на Redus PubSub каналы

  • new_reaction
  • new_shout
  • followers:<author_id>
  • chat:<chat_id>

После подписки на эти каналы, сервис начинает пересылать сообщения из этих каналов. Он пересылает только те сообщения, которые предназначены пользователю, подписавшемуся на Server-Sent Events (SSE) по адресу /connect. Для авторизации подписки используется токен, который передается в заголовке Authorization.

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

При завершении подключения, все подписки автоматически отменяются, так как они связаны с конкретным подключением. Если пользователь снова подключается, процесс подписки повторяется.