nchan_eventsource_ping_interval

设置通过 EventSource 连接向客户端发送 ping 消息的间隔。

语法nchan_eventsource_ping_interval time;
默认值none
上下文server, location, if in location
参数1

说明

指令 nchan_eventsource_ping_interval 指定通过 EventSource 连接发送 ping 消息以保持连接存活的时间间隔。当客户端通过 EventSource 连接时,服务器会保持一个打开的连接以向客户端推送更新。如果连接长时间空闲,客户端可能会断开连接,因此定期发送 ping 消息可以确保连接保持活动并可用。该指令接受单个参数,该参数为一个时间值,用来表示向客户端发送连续 ping 之间的间隔。

在实践中,该指令可在最小化客户端交互的情况下帮助维持连接健康。根据所提供的值,可以配置这些 ping 的频率,以在资源使用和连接可用性之间取得平衡。例如,设置较短的间隔可以防止因网络问题导致的断开,但也可能增加服务器和客户端的负载。相反,较长的间隔可能节省资源,但会增加静默断开(silent disconnections)的风险。

当构建实时应用时,如果需要在高负载或空闲期间保持 WebSockets 或 EventSource 连接不中断,该指令尤其有用。它可以在多种上下文中使用,例如 serverlocation,甚至在 location 块内的 if 条件中,从而根据应用的具体需求提供灵活性。

配置示例

location /events {
    nchan_eventsource_ping_interval 30s;
    nchan_subscriber_channel_id your_channel;
}

将间隔设置得过低会导致服务器负载增加。

如果配置不当,可能会导致客户端比必要的更频繁地断开连接。

← 返回所有指令