## Presence "Присутствие" - это сервер для пересылки сообщений в реальном времени. Текущая версия использует SSE-транспорт. ### ENV - API_BASE - AUTH_URL - REDIS_URL ### Как это работает При каждом обращении к `/connect` создаётся отдельная асинхронная задача с подписками на Redus PubSub каналы, позволяя пользователям получать только те уведомления, которые предназначены непосредственно для них. Каналы Redis: - `reaction` - `shout` - `follower:` - `chat:` Сервис пересылает сообщения из этих каналов, которые предназначены пользователю, подписавшемуся на Server-Sent Events (SSE) по адресу `/connect`. Для авторизации подписки используется токен, который передается клиентом в заголовке `Authorization`, или в пути `/connect/{token}`, или в переменной запроса `/connect/?token={token}`. При завершении подключения, все подписки автоматически отменяются, так как они связаны с конкретным подключением. Если пользователь снова подключается, процесс подписки повторяется. ### Формат сообщений межсервисной коммуникации Между сервисами пересылаются целые сущности и типизация действий с ними, поля стандартного redis-сообщения: - `action` наименование операции, примеры: "create" | "delete" | "update" | "join" | "left" - `payload` json одной из сущностей: Reaction | Shout | Author | Chat | Message