nchan_longpoll_multipart_response
指令 `nchan_longpoll_multipart_response` 指定在 Nchan 中是否对长轮询订阅者使用 multipart 响应。
Scalable, flexible pub/sub server for the modern web
·
serverlocationif in location
语法nchan_longpoll_multipart_response on | off;
默认值off
上下文server, location, if in location
参数1
说明
指令 nchan_longpoll_multipart_response 是 Nchan 中的一个配置选项,用于在处理长轮询请求时启用 multipart 响应。设置该指令后,服务器将以 multipart 格式构建响应,允许在单个 HTTP 响应中向订阅者发送多条消息。通过减少为发送多条消息所需的 HTTP 连接次数,这可以提高效率并降低延迟,因而对于高消息吞吐量的应用是一个有效的选择。
启用后,Nchan 将使用 multipart/x-mixed-replace 内容类型发送长轮询响应,从而允许在单个 HTTP 连接上流式传输 multipart 响应。此行为在消息频繁到达并需要立即推送给客户端的场景中特别有用,因为订阅者可以在消息发布时立即接收每条消息,而无需为每条消息建立新的连接。该指令接受一个参数:on 表示启用,off 表示禁用此功能。
需要注意的是,服务器必须正确配置以处理这些 multipart 响应,且客户端代码也应能够解析此格式。另外,使用 multipart 响应可能需要根据所选的订阅技术(例如 EventSource 或与 WebSockets 或长轮询端点交互的自定义 JavaScript 客户端)进行特定处理,以确保消息被正确处理。
配置示例
location /subscribe {
nchan_longpoll_multipart_response on;
nchan_subscriber_channel_id $arg_channel;
nchan_pubsub;
}⚠
确保客户端能够正确处理多部分响应;并非所有客户端都原生支持此功能。
⚠
使用多部分响应可能需要服务器端更谨慎的处理,以确保在发送之前消息已正确格式化。