on_play_done
Директива `on_play_done` задаёт пользовательский HTTP-эндпоинт обратного вызова, который вызывается при завершении воспроизведения в модуле NGINX RTMP.
Описание
Директива on_play_done является частью модуля NGINX RTMP и позволяет вызывать указанный HTTP-эндпоинт после завершения воспроизведения медиа-потока. Эта функциональность особенно полезна в сценариях прямых трансляций, когда по завершении потока необходимо выполнить какие-либо действия, например логирование, аналитика или побочные эффекты вроде запуска других процессов. Директива принимает один аргумент — URL HTTP-эндпоинта, который будет вызываться при завершении воспроизведения.
Когда воспроизведение завершается, NGINX отправляет HTTP-запрос на указанный URL. Метод запроса обычно POST и может включать параметры, указывающие детали о потоке, пользователе или любой другой полезной нагрузке, необходимой для обработки события завершения на стороне сервера. Такая схема позволяет выполнять асинхронную обработку, давая возможность основному процессу потоковой передачи продолжать работу, не дожидаясь завершения HTTP-запроса.
В типичной конфигурации приложение может использовать эту директиву, определив обратный вызов, который записывает или обрабатывает информацию о потоке для аналитики или хранения после того, как поток перестаёт просматриваться. Использование on_play_done в сочетании с другими директивами модуля RTMP может значительно расширить функциональность и интерактивность приложений для вещания.
Пример конфига
application live {
live on;
on_play_done http://localhost:8080/playdone;
}Убедитесь, что callback URL доступен с сервера NGINX; в противном случае HTTP-запрос завершится без видимых ошибок.
Проверьте, что HTTP-сервер, обрабатывающий callback, способен быстро обрабатывать входящие запросы, чтобы избежать возможных задержек в обработке потоков.
Использование on_play_done может добавить дополнительную задержку из-за HTTP-запроса; крайне важно управлять этим в условиях высокой нагрузки.