Micronaut Websocket 连接每 5 分钟超时一次
Micronaut Websocket connection timing out after every 5 minutes
在我的 micronaut 应用程序中,我使用的是 websockets,但套接字连接每 5 分钟超时一次,我想自定义此值。
在 micronaut 文档中给出了这个配置:
micronaut:
server:
idle-timeout: 30m # 30 minutes
但是这个配置也不起作用。有人可以帮忙吗?
必须使用此配置:
server:
idle-timeout: 60m
read-idle-timeout: 60m
write-idle-timeout: 60m
事实证明,Micronaut 会为这些设置中的每一个发送断开连接事件,因此我们必须更新所有三个值的超时。
我认为服务器配置会影响您打开的每个连接——而不仅仅是套接字 TCP。我的解决方案是实现“乒乓”或“心跳”功能 - 基本上是在固定时间间隔内从客户端发送到服务器并返回的消息。我会每隔 x
分钟发送一次“ping”,后端会以“pong”响应。尽管这样做可以保持连接打开,但我敢肯定这不是对每个项目都适用的解决方案。
此外,Connection Timeouts
部分下的文档 here 说:“...默认情况下,Micronaut 将在 5 分钟后超时没有 activity 的空闲连接。通常这不是问题,因为浏览器会自动重新连接 WebSocket 会话...",我也不是这种情况。
在我的 micronaut 应用程序中,我使用的是 websockets,但套接字连接每 5 分钟超时一次,我想自定义此值。 在 micronaut 文档中给出了这个配置:
micronaut:
server:
idle-timeout: 30m # 30 minutes
但是这个配置也不起作用。有人可以帮忙吗?
必须使用此配置:
server:
idle-timeout: 60m
read-idle-timeout: 60m
write-idle-timeout: 60m
事实证明,Micronaut 会为这些设置中的每一个发送断开连接事件,因此我们必须更新所有三个值的超时。
我认为服务器配置会影响您打开的每个连接——而不仅仅是套接字 TCP。我的解决方案是实现“乒乓”或“心跳”功能 - 基本上是在固定时间间隔内从客户端发送到服务器并返回的消息。我会每隔 x
分钟发送一次“ping”,后端会以“pong”响应。尽管这样做可以保持连接打开,但我敢肯定这不是对每个项目都适用的解决方案。
此外,Connection Timeouts
部分下的文档 here 说:“...默认情况下,Micronaut 将在 5 分钟后超时没有 activity 的空闲连接。通常这不是问题,因为浏览器会自动重新连接 WebSocket 会话...",我也不是这种情况。