nchan_subscriber_http_raw_stream_separator
Директива `nchan_subscriber_http_raw_stream_separator` задаёт пользовательскую строку-разделитель для сырых потоковых HTTP-ответов в модуле Nchan pub/sub.
Описание
Директива 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";
}Убедитесь, что строка-разделитель не совпадает с форматами данных, которые вы можете использовать в сообщениях, чтобы избежать ошибок разбора.
Использование слишком сложного разделителя может привести к проблемам с производительностью при обработке строк как на стороне сервера, так и на стороне клиента.