STOMP在几分钟不活动后停止接收消息

时间:2017-08-10 09:36:55

标签: php yii activemq stomp

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

我正在使用的版本 activemq:5.9.0 STOM:1.0.9

我正在使用以下配置设置 transportConnector name =" wss" URI =" WSS://0.0.0.0:61614 maximumConnections = 1000&安培; wireFormat.maxFrameSize = 104857600&安培; wireFormat.maxInactivityDuration = 5亿&安培; wireFormat.maxInactivityDurationInitalDelay = 36000000&安培; websocket.maxIdleTime = 0&安培; transport.useInactivityMonitor =假&# 34;

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

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

提前感谢您提供的帮助。

更新1: 这是我在日志文件中收到的错误 失败:org.apache.activemq.transport.InactivityIOException:频道已停用太长时间

1 个答案:

答案 0 :(得分:0)

ActiveMQConnectionFactory具有名为

的属性
  

的idleTimeout

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

  

factory.setIdleTimeout(15 * 60 * 1000)