Ping Sender

Ping Sender 是一个极简程序,其唯一目的是发送遥测 Ping。它接受以下参数:

  • Ping 将发送到的 URL(作为 HTTP POST 命令);

  • 包含 Ping 内容的未压缩文件的路径。

从磁盘读取 Ping 后,Ping Sender 将尝试发送一次,如果失败则退出并返回非零值。如果 Ping 发送成功,则删除 Ping 文件。

HTTP 请求的内容使用 gzip 编码。请求附带一些额外的头部:

  • User-Agent: pingsender/1.0

  • X-PingSender-Version: 1.0。即使用户代理已包含此数据,也需要此头部,因为管道当前不存储用户代理字符串,这样做可能需要存储大量冗余的额外数据。我们需要在摄取管道的末端区分使用 Ping Sender 发送的 Ping 和使用正常流程发送的 Ping,以进行验证。

注意

Ping Sender 依赖于 Linux 和 Mac 构建的 libcurl 以及 Windows 构建的 WinInet 来实现其 HTTP 功能。它当前忽略 Firefox 或系统的代理配置。

在非调试模式下,Ping Sender 不会打印任何内容,即使在错误情况下也不会,这是为了避免在 Windows 等会打开单独的控制台窗口来显示程序输出的架构上惊吓用户。如果您需要打印运行时信息,请启用调试功能编译 Ping Sender。

Ping Sender 不支持 Firefox for Android(参见 bug 1335917