http2session.ping([payload, ]callback)


向已连接的 HTTP/2 对等方发送 PING 帧。必须提供一个 callback 函数。如果 PING 发送成功,该方法将返回 true,否则返回 false

🌐 Sends a PING frame to the connected HTTP/2 peer. A callback function must be provided. The method will return true if the PING was sent, false otherwise.

maxOutstandingPings 配置选项决定了未确认 ping 的最大数量。默认最大值为 10。

🌐 The maximum number of outstanding (unacknowledged) pings is determined by the maxOutstandingPings configuration option. The default maximum is 10.

如果提供,payload 必须是一个包含 8 字节数据的 BufferTypedArrayDataView,这些数据将随 PING 发送,并在 ping 确认时返回。

🌐 If provided, the payload must be a Buffer, TypedArray, or DataView containing 8 bytes of data that will be transmitted with the PING and returned with the ping acknowledgment.

回调函数将接收三个参数:一个错误参数,如果 PING 被成功确认,该参数将为 null;一个 duration 参数,报告从发送 ping 到收到确认所经过的毫秒数;以及一个包含 8 字节 PING 数据的 Buffer

🌐 The callback will be invoked with three arguments: an error argument that will be null if the PING was successfully acknowledged, a duration argument that reports the number of milliseconds elapsed since the ping was sent and the acknowledgment was received, and a Buffer containing the 8-byte PING payload.

session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => {
  if (!err) {
    console.log(`Ping acknowledged in ${duration} milliseconds`);
    console.log(`With payload '${payload.toString()}'`);
  }
}); 

如果未指定 payload 参数,默认的负载将是标记 PING 持续时间开始的 64 位时间戳(小端序)。

🌐 If the payload argument is not specified, the default payload will be the 64-bit timestamp (little endian) marking the start of the PING duration.