Вопросы и ответы

Нужен ли HTTPS для WebSocket в production?

Да. Браузеры требуют защищённое соединение (wss://) для WebSocket, если страница открыта по https://. Для разработки на localhost допустим ws://.

Как продлить сессию пользователя?

Используйте POST /auth/refresh с телом { "refresh_token": "..." }. В ответ придёт новый access_token. Вызывайте refresh до истечения срока действия access_token или при получении 401.

Чем личный звонок отличается от группового?

Личный (в чате типа direct): интерфейс «один на один» (крупное видео собеседника, своё в углу), нет панели участников и приглашений. Групповой (в чате типа group): комната в стиле Zoom — сетка участников, хост (инициатор) может приглашать и исключать участников.

Кто может приглашать в групповой звонок?

Только инициатор вызова (хост комнаты). Остальные участники видят список в звонке, но кнопка «Добавить» и приглашение через API доступны только инициатору.

Как отправить сообщение через API?

Отправка сообщений реализована через WebSocket (событие в канал чата), а не через REST. После подключения к сокету и join канала чата клиент отправляет событие (например, new_message) с телом сообщения. Точный формат события см. в коде бэкенда (Phoenix channel).

Что такое chat_type в ответе звонка?

Поле chat_type приходит в объекте call и имеет значение direct или group. Оно определяет, какой интерфейс звонка показывать: личный (Telegram-стиль) или групповой (Zoom-стиль).

Как получить временную ссылку на скачивание файла?

Вызовите GET /files/:id/download. В ответе будут url (временная ссылка) и expires_in (срок действия в секундах). Используйте url для редиректа или отображения ссылки пользователю.

Поддерживается ли 2FA?

API предусматривает эндпоинт POST /auth/verify-2fa (token + 6-значный code). Включение 2FA и выдача кодов настраиваются на бэкенде (TOTP и т.д.).

Какие лимиты запросов действуют?

В документации указаны ориентиры: 100 req/min для аутентифицированных и 20 для неаутентифицированных. Точные значения задаются в конфигурации бэкенда (например, через throttle или плагины Phoenix).

Можно ли использовать API из мобильного приложения?

Да. REST API и WebSocket не привязаны к браузеру. Передавайте JWT в заголовке Authorization и при подключении к сокету (если сервер требует). Для звонков понадобится интеграция с LiveKit SDK под вашу платформу (iOS/Android).