【问题标题】:STOMP stops receiving messages after few mins of inactivitySTOMP 在几分钟不活动后停止接收消息
【发布时间】:2018-01-18 11:27:27
【问题描述】:

我在 ActiveMQ 和 Stomp 连接中遇到了一个非常不寻常的问题。我已经将它集成到我的网站中,当网站甚至计算机上有任何活动时(即使打开网站的浏览器被最小化),它也能正常工作。每当计算机进入空闲模式超过 10 分钟,ActiveMQ 和 STOMP 之间的连接就会关闭,然后即使用户再次最大化浏览器,也不会通信,也不会更新。

我正在使用的版本 活动MQ:5.9.0 斯托姆:1.0.9

我正在使用以下配置设置 transportConnector name="wss" uri="wss://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600&wireFormat.maxInactivityDuration=500000000&wireFormat.maxInactivityDurationInitalDelay=36000000&websocket.maxIdleTime=0&transport.useInactivityMonitor=false"

我做错了什么?我已经尝试了上述参数的所有可能组合,但结果是相同的,空闲时间的持续时间增量几乎没有变化,之后连接将丢失。

我想要的是,无论用户是否使用浏览器/计算机,连接都应该保持活动状态。

提前感谢您提供的帮助。

更新 1: 这是我在日志文件中收到的错误 失败:org.apache.activemq.transport.InactivityIOException:通道太长时间处于非活动状态

【问题讨论】:

  • 5.9.0 是旧版本,升级到 5.15.0 可能会解决您遇到的任何问题
  • @TimBish 谢谢回复,我已经升级到最新版本的activemq到5.15和STOMP到1.2,结果还是一样

标签: php yii activemq stomp


【解决方案1】:

ActiveMQConnectionFactory 有一个名为

的属性

空闲超时

默认值为 30 秒。如果连接在 30 秒内没有活动,则它将被不活动监视器关闭,但如果您想增加此限制,则应将 IdleTimeout 设置为 15 分钟。在你的 Jms ConnectionFactory 中使用方法

factory.setIdleTimeout(15*60*1000)

【讨论】:

  • 谢谢@nir 我正在检查这个。
猜你喜欢
  • 1970-01-01
  • 2012-10-12
  • 2019-02-21
  • 2018-04-15
  • 1970-01-01
  • 2019-04-09
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多