添加一个乒乓球/乒乓球 Websocket 消息以支持 RTT 和类似的度量衡

作者: krisajenkins创建于 2026年9月11日更新于 2026年9月15日

游戏开发者在 SpacetimeDB 上构建应用时,希望了解其连接的往返时间、波动程度以及服务器认为的时间。这些都是游戏网络层的标准指标,用于补偿延迟、插值和“ping”显示。服务器已经发送了 WebSocket Ping 帧,但浏览器从未将控制帧暴露给 JavaScript(如 #5525 所示),并且 SDK 中也没有暴露这些帧。因此,用户需要自行构建这些指标:Pogly 在我们的基础上运行了一个 ping/pong 系统(见 #5357)。其他用户则调用了时间减小器,计算减小器队列时间并每次运行一个事务。/unstable/timestamp 路由(#2864)提供了时钟读数,但通过单独的 HTTP 连接。 我们建议在协议中添加一个专用的 `Ping` 客户端消息和 `Pong` 服务器消息。Pong 会回应客户端的发送时间,并添加服务器接收的 `Timestamp` 和服务器保留消息的时间,以便回复。服务器应在正常消息处理器之前处理 Pings,该处理器会并行运行订阅和一次性查询,因此测量不包括查询的评估。

内容来源: clockworklabs/SpacetimeDB