在 Akka HTTP 中保持 WebSocket 连接有效的最佳方法?

Best way to keep WebSocket connection alive in Akka HTTP?

如果没有发送或接收消息,连接将在一分钟后关闭。

我不想像这样连续发送短信来保持连接:

keepAlive(maxIdle = 10.seconds, () => TextMessage.Strict("Keep-alive message")

Akka HTTP 中是否有提供自然发送 ping/pong 消息的功能?我需要做什么?

如果您不想手动使用 keepAlive 组合器,那么您可以使用 Akka HTTP 的自动保持连接 ping 支持,这是通过 application.conf 中的设置启用的。

对于client side

akka.http.client.websocket.periodic-keep-alive-max-idle = 10 seconds

对于server side

akka.http.server.websocket.periodic-keep-alive-max-idle = 10 seconds

链接文档中有更多信息。