nchan_subscriber_http_raw_stream_separator

Директива `nchan_subscriber_http_raw_stream_separator` задаёт пользовательскую строку-разделитель для сырых потоковых HTTP-ответов в модуле Nchan pub/sub.

Синтаксисnchan_subscriber_http_raw_stream_separator string;
По умолчаниюnone
Контекстserver, location, if in location
Аргументы1

Описание

Директива nchan_subscriber_http_raw_stream_separator используется в модуле Nchan для определения конкретной строки, которая разделяет сообщения в сырых потоковых HTTP-ответах. Эта директива полезна, когда клиентам нужны чёткие границы сообщений, особенно в схеме pub/sub, где несколько сообщений могут быть отправлены в одном HTTP-ответе. Использование этой директивы позволяет разработчикам указать желаемую строку-разделитель, которая будет отправляться между сообщениями, повышая наглядность и управляемость потока данных, доставляемого подписчикам.

Чтобы применить эту директиву, вы можете разместить её в контексте server, location или внутри блока if в контексте location. Аргумент директивы должен быть допустимой строкой, которая будет выступать в качестве разделителя. Если вы не укажете разделитель, подписчики, ожидающие его, могут не суметь корректно разобрать входящие данные. Это может привести к проблемам в приложениях, которым требуется разбор сообщений из HTTP-потока.

Эта функциональность особенно полезна в сценариях, где подписчики используют сырые HTTP-потоки, например при соединениях WebSocket или настройках EventSource, поскольку позволяет подписчику различать отдельные сообщения с помощью заданного разделителя. Важно выбирать разделитель, который вряд ли будет путаться с содержимым отправляемых сообщений, чтобы избежать ошибок парсинга и повреждения данных.

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

location /subscribe {
    nchan_subscriber_http_raw_stream_separator "\n";
}

Убедитесь, что строка-разделитель не совпадает с форматами данных, которые вы можете использовать в сообщениях, чтобы избежать ошибок разбора.

Использование слишком сложного разделителя может привести к проблемам с производительностью при обработке строк как на стороне сервера, так и на стороне клиента.

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