【发布时间】:2020-10-01 22:47:00
【问题描述】:
在我的 micronaut 应用程序中,我正在使用 websockets,但每 5 分钟后套接字连接就会超时,我想自定义此值。 在 micronaut 文档中给出了这个配置:
micronaut:
server:
idle-timeout: 30m # 30 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 分钟后没有活动的空闲连接。通常这不是问题,因为浏览器会自动重新连接WebSocket 会话...”,我也不是这样。
【讨论】: