如何使用boost :: beast检测websockt中的断开连接?

时间:2018-04-24 09:06:28

标签: c++ boost websocket boost-beast

我知道我可以使用async_writeasync_read中的错误代码来检查断开连接。

然而,在我的情况下,在我收到某些东西后,我无法立即回复(或者回写可能永远不会发生)。

  

在阅读和写作之间,我该如何检查   客户端断开异常?

1 个答案:

答案 0 :(得分:3)

  

我知道我可以使用async_write中的错误代码async_read来检查断开连接。

实际上只有async_read会通知您另一端是否正常关闭了连接。

  

在读写之间的时间内,如何检查客户端断开连接异常?

你做不到。实际上,即使您正在呼叫async_read,也不可能始终知道另一端是否关闭了连接。如果一段时间没有活动,您需要使用计时器来超时连接。如果过多时间没有活动,您可以使用websocket流的ping功能。这在高级服务器示例中得到了证明。