← Cloudflare Realtime / realtime / realtimekit
Часто задаваемые вопросы
Как сгенерировать API-токен Cloudflare?
Чтобы использовать API RealtimeKit, у вас должен быть Аккаунт Cloudflare ↗.
Следуйте Руководство по созданию токена API чтобы создать новый токен через Панель управления Cloudflare ↗. При настройке разрешений убедитесь, что Realtime / Realtime Admin разрешения выбраны. Настройте любые дополнительные политики доступа и ограничения по мере необходимости для вашего сценария использования.
Встречи
Можно ли запланировать встречи заранее с помощью RealtimeKit?
RealtimeKit не содержит встроенной системы планирования, но вы можете реализовать такой сценарий поверх него в своем приложении. У встреч RealtimeKit нет времени начала или окончания, поэтому ваш бэкенд должен хранить расписание и определять, когда пользователям разрешено присоединяться. Обычно это делается так:
- Когда пользователь планирует встречу, ваш бэкенд создаёт встречу в RealtimeKit и сохраняет
idвместе с временем начала и окончания. - Когда пользователь пытается присоединиться к встрече в вашем приложении, бэкенд проверяет, попадает ли текущее время в разрешённый интервал.
- Если проверки пройдены, ваш бэкенд добавляет участника к встрече, возвращает токен аутентификации участника фронтенду, а фронтенд передает этот токен в RealtimeKit SDK, чтобы пользователь мог присоединиться.
Как запретить участникам присоединяться к встрече после определённой даты или времени?
Встречу можно отключить в нужное время, установив для нее статус INACTIVE с помощью PATCH запрос к
Обновление встречи конечная точка.
Это не позволяет участникам присоединяться к встрече и запрещает запуск новых Session.
curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/realtime/kit/{APP_ID}/meetings/{MEETING_ID} \
--request PATCH \
--header "Authorization: Bearer <CLOUDFLARE_API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{ "status": "INACTIVE" }'Участники
Как сгенерировать токен авторизации для участника?
Ваш бэкенд генерирует токен аутентификации, добавляя пользователя как
участника встречи с помощью Add
Participant
API-эндпойнт. Ответ API содержит token поле, представляющее собой
токен аутентификации этого участника в данной встрече. Если после истечения срока действия предыдущего токена вам нужен новый
токен для существующего участника, используйте
Обновить
токен участника
эндпойнт. Подробнее см. Токены
участника.
Может ли один и тот же пользователь присоединиться с нескольких устройств или вкладок браузера?
Да. Один участник может быть представлен несколькими пирами, если пользователь присоединяется к одной и той же встрече с разных устройств или вкладок. Каждое подключение становится отдельным пиром, но все они соответствуют одному и тому же участнику.
Как запретить пользователю повторно присоединяться к встрече?
Удалите участника этого пользователя для встречи с помощью Удалить Участника API-эндпойнт. После удаления участника и прекращения выдачи ему новых токенов он больше не сможет присоединиться к этой встрече.
Может ли один и тот же участник присоединиться к нескольким сессиям одной встречи?
Да. Пока участник существует для этой встречи и имеет действительный токен аутентификации, он может присоединяться к нескольким активным сессиям этой встречи в разное время.
Нужно ли создавать нового участника для каждой сессии?
В большинстве случаев нет. Обычно участник создается один раз для определенного пользователя и встречи, а затем используется повторно в разных сессиях этой встречи. Со временем может понадобиться обновить токен аутентификации участника, но пересоздавать самого участника не требуется.
Что использовать для custom_participant_id?
Используйте стабильный внутренний идентификатор из собственной системы, например числовой ID пользователя или UUID. Не используйте личные данные, такие как адреса электронной почты, номера телефонов или другую информацию, позволяющую идентифицировать личность.
Пресеты
Нужен ли новый пресет для каждой встречи или участника?
Пресеты представляют собой многоразовый набор правил и настроек, определяемых на уровне App. Один и тот же preset можно использовать для нескольких участников.
Подробнее о пресетах см. в здесь.
Клиентские SDK
Как выбрать подходящий SDK?
RealtimeKit поддерживает все популярные фреймворки для веб- и мобильных платформ.
Мы рекомендуем использовать наши UI Kit Для большинства сценариев использования.
Обратите внимание: используя наш UI Kit, вы также получаете Core SDK, с помощью которого можно реализовать дополнительные функции под ваши задачи.
Дополнительную информацию см. в нашем Руководство по выбору SDK
Камера
Как установить качество камеры конечного пользователя на уровне 1080p?
При инициализации RealtimeKit можно задать настройки медиа для качества камеры.
См. настройки медиа здесь для дополнительных сведений.
Более высокое качество камеры увеличивает потребление трафика и может повлиять на производительность встречи на менее мощных устройствах, если устройство пользователя не может обрабатывать поток 1080p от нескольких peer одновременно.
Как задать пользовательскую частоту кадров для видео с камеры конечного пользователя?
При инициализации RealtimeKit можно задать настройки медиа для камеры.
См. настройки медиа здесь для дополнительных сведений.
Более высокая частота кадров видео увеличивает потребление трафика и может повлиять на качество видео у других участников встречи, если у пользователя есть проблемы с пропускной способностью сети. В групповых звонках устанавливайте более низкое значение частоты кадров видео (например, <= 30). Текущее значение по умолчанию составляет 24/30 FPS в зависимости от уровня simulcast.
Микрофон
Почему мой микрофон не выбирается автоматически при подключении?
RealtimeKit SDK стремится обеспечить наилучший опыт и автоматически выбирает микрофон, отдавая предпочтение Bluetooth-устройствам перед проводными. Однако если устройство было подключено ещё до входа во встречу RealtimeKit и не поддерживает bluetooth, headset, или earphone в своей метке, это можно не заметить.
Мы поддерживаем автоматический выбор микрофонов с меткой bluetooth, headset, earphone, или microphone, а также USB-устройства с такими названиями, как usb и wired. Также поддерживаются некоторые распространенные устройства, например AirPods или Airdopes. Виртуальные устройства не выбираются автоматически.
Если автоматический выбор не срабатывает, конечные пользователи могут вручную выбрать микрофон с помощью кнопки «Настройки» во время встречи, и SDK запомнит этот выбор для будущих сессий. Если вы используете устройство, которое, по вашему мнению, широко распространено, обратитесь в поддержку и запросите добавление поддержки автоматического выбора непосредственно для этого устройства.
Демонстрация экрана
Как задать пользовательскую частоту кадров для демонстрации экрана?
При инициализации RealtimeKit можно задать настройки медиа для демонстрации экрана.
См. настройки медиа здесь для дополнительных сведений.
Более высокая частота кадров при демонстрации экрана увеличивает потребление трафика и может повлиять на качество видео у других участников встречи, если у пользователя есть проблемы с пропускной способностью сети. В групповых звонках устанавливайте более низкое значение частоты кадров для демонстрации экрана (например, <= 30). В большинстве случаев 5 FPS (значение по умолчанию) достаточно для демонстрации экрана.
Чат
Не удается отправить сообщение в чат
Причин для этого может быть несколько.
Сначала попробуйте тестовую встречу на демо-приложение ↗. Если вы не можете отправить сообщение в демо-приложении, обратитесь в службу поддержки. Если вы можете отправить сообщение в демо-приложении, проблема на стороне интеграции.
Чтобы устранить проблемы с интеграцией, сначала проверьте, успешно ли пользователь присоединился к встрече. Если пользователь присоединился ко встрече, проверьте, что у пользователя пресет имеет разрешение отправлять сообщения. Если вы используете собственный интерфейс, проверьте, что базовый API чата работают над тем, чтобы исключить Core SDK из числа обычных виновников.
Если это не решает проблему, проверьте, не блокирует ли пользовательский интерфейс ваш фреймворк. Такие фреймворки, как Material UI, могут блокировать фокус ввода с помощью focus trap в компоненте Drawer. Обычно для отключения focus trap предусмотрен отдельный prop. В Material UI есть disableEnforceFocus prop для этой цели.
Если вы по-прежнему не можете отправить сообщение, обратитесь в поддержку.
Запись
Изображения водяных знаков выглядят повреждёнными в записях
Когда вы передаёте URL-адрес изображения водяного знака через Начать запись API рекордер загружает это изображение в браузере, запущенном в контейнере Cloudflare. Если изображение отображается некорректно, проверьте следующее:
- CORS-заголовки: URL-адрес изображения должен возвращать корректные CORS-заголовки (например,
Access-Control-Allow-Origin: *) в HTTP-ответе. Без этих заголовков браузер блокирует загрузку изображения. - Прямой URL-адрес изображения: URL-адрес должен указывать непосредственно на файл изображения (например,
https://example.com/logo.png), а не на HTML-страницу, встраивающую это изображение. - Без перенаправлений: URL-адрес не должен перенаправлять на другой адрес. Средство записи запрашивает URL-адрес как есть, поэтому перенаправления могут привести к сбою загрузки изображения.
Доступ к сети
Какие домены и порты нужно добавить в allowlist, если моя сеть ограничивает исходящий трафик?
Если ваша сеть ограничивает исходящий трафик, обратитесь к Список разрешений сети для доменов и портов, необходимых для интеграции RealtimeKit.
Как проверить, готовы ли моя сеть и устройства к встрече в RealtimeKit?
Перейдите в test.realtime.cloudflare.com ↗ и запустить тест перед звонком. Тест проверяет камеру, микрофон и сеть, а также проверяет подключение к эндпойнтам Cloudflare Realtime, чтобы вы могли убедиться, что необходимые сервисы не заблокированы вашей сетью или брандмауэром перед началом встречи. Список необходимых доменов и портов см. в Список разрешений сети.
Демо-приложение
Можно ли использовать размещённое Cloudflare демо-приложение или примеры на вашем сайте в виде iframe?
Мы настоятельно не рекомендуем встраивать размещённое Cloudflare демо-приложение или примеры в виде iframe на вашем сайте, даже если вы передаёте токены аутентификации через параметры URL.
Вместо этого настройте интерфейс встречи по умолчанию на своём сайте, следуя Руководство по настройке UI Kit или разверните Веб-примеры RealtimeKit ↗ под собственным доменом. Оба подхода требуют минимальных усилий и дают ощутимые преимущества:
- Управление: Вы сохраняете полный контроль над пользовательским опытом, структурой и интерфейсом.
- Стабильность: Ваша реализация остаётся стабильной и не меняется в одночасье, что защищает ваш продукт от внезапных сбоев.
- Надёжность: Вы сами решаете, когда и как выполнять обновление, обеспечивая стабильную работу для своих пользователей.
Демо-приложение и примеры приложений могут обновляться в любое время без предварительного уведомления.