push_stream_publisher

Директива `push_stream_publisher` позволяет location выступать в качестве конечной точки издателя для потоковой передачи сообщений подписчикам.

Синтаксисpush_stream_publisher ;
По умолчаниюnone
Контекстlocation
Аргументыnone

Описание

Директива push_stream_publisher является частью NGINX Push Stream Module и позволяет указанному location обрабатывать входящие сообщения от клиентов. Она требует контекста location и обладает уникальной возможностью управлять сообщениями, отправленными издателями в конкретные каналы. При настройке директива определяет канал назначения сообщения через строку запроса, обычно с использованием параметра ?id=. Эта функциональность является основой для построения сервиса вещания сообщений в реальном времени с использованием таких протоколов, как EventSource и WebSocket.

Когда к конечной точке издателя поступает запрос, сервер ожидает получить метод POST, содержащий данные для распространения среди подписчиков указанного канала. Таким образом, директива напрямую способствует модели коммуникации в реальном времени, позволяя публиковать сообщения, которые затем могут транслироваться любым активным подписчикам, подключенным к этому каналу. Наличие конечной точки издателя дополняет функцию подписчика директивы push_stream_subscriber, обеспечивая полноценную архитектуру pub/sub.

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

Пример конфига

server {
    location /pub {
        push_stream_publisher admin;
        push_stream_channels_path $arg_id;
    }
}

Убедитесь, что параметр ID в строке запроса правильно задан, поскольку он критически важен для идентификации канала.

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

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

← Ко всем директивам