我有一个 iOS 客户端,它通过 STOMP 协议连接到多个 ActiveMQ 主题和队列。当我连接到服务器时,我发送以下消息:
2012-10-30 10:19:29,757 [MQ NIO Worker 2] TRACE StompIO
CONNECT
passcode:*****
login:system
2012-10-30 10:19:29,758 [MQ NIO Worker 2] DEBUG ProtocolConverter
2012-10-30 10:19:29,775 [MQ NIO Worker 2] TRACE StompIO
CONNECTED
heart-beat:0,0
session:ID:mbp.local-0123456789
server:ActiveMQ/5.6.0
version:1.0
然后,我使用以下消息订阅了几个主题:
2012-10-30 10:19:31,028 [MQ NIO Worker 2] TRACE StompIO
SUBSCRIBE
activemq.subscriptionName:user@mail.com-/topic/SPOT.SPOTCODE
activemq.prefetchSize:1
activemq.dispatchAsync:true
destination:/topic/SPOT.SPOTCODE
client-id:1234
activemq.retroactive:true
我面临着 ActiveMQ 服务器的两个问题。每次连接时,Number of Consumers
Web 界面中的列都会增加,所以我只有一个真正的消费者,但数量大约是 50 个消费者。但最成问题的问题是,当我将另一台 iOS 设备插入笔记本电脑以测试消息传递环境时,连接到 ActiveMQ 时出现以下错误:
WARN | Async error occurred: javax.jms.JMSException: Durable consumer is in use for client: ID:mbp.local-0123456789 and subscriptionName: user@mail.com-/topic/SPOT.SPOTCODE
这似乎是通过 STOMP 与 ActiveMQ 断开连接无法正常工作,因为此日志记录尝试是在其他设备未运行应用程序时进行的。为了解决这个问题,我尝试了以下方法:
- 尝试订阅主题时始终注销。
- 订阅
我目前正在使用 v5.6.0 在我的笔记本电脑上执行服务器。