nchan_websocket_client_heartbeat

nchan_websocket_client_heartbeat 指令定义了通过 WebSocket 连接发送心跳消息以保持会话活动的间隔。

语法nchan_websocket_client_heartbeat interval [data];
默认值none
上下文server, location, if in location
参数2

说明

nchan_websocket_client_heartbeat 指令在 NGINX Nchan 模块中用于指定在活动 WebSocket 连接上发送心跳消息的间隔(以秒为单位)。这对于确保空闲的 WebSocket 连接保持打开状态并且不会因不活动而被中间代理或防火墙误关闭尤其重要。

配置后,NGINX 将定期通过 WebSocket 通道发送消息以验证连接状态。这有助于通过保持客户端活跃来维持持久连接,对于需要实时数据传输的应用至关重要。该指令接受两个参数:第一个指定发送心跳的间隔,第二个指定应在这些心跳消息中发送的(如果有)数据负载。默认情况下未设置心跳间隔,这意味着除非显式指定,否则不会发送心跳。

根据应用需求,正确配置此指令以优化 WebSocket 性能非常重要。间隔过长可能导致连接断开,而过于频繁的心跳则会在服务器和客户端两端造成不必要的流量和处理开销。

配置示例

location /ws {
    nchan_websocket_client_heartbeat 30 "{"keep_alive": true}";
}

确保心跳间隔不会与其他超时设置冲突,例如 WebSocket 的 ping-pong 机制。

在心跳消息中发送较大的有效载荷会导致带宽使用增加,并可能引发网络延迟问题。

← 返回所有指令