我在 android 中使用 MQTT 与 ActiveMQ 服务器通信。我用这个例子来实现 android mqtt 客户端:http ://dalelane.co.uk/blog/?p=1599 。当我第一次打开 android 应用程序时,它连接到 ActiveMQ 并且一切正常。当我关闭应用程序时,删除应用程序数据并重新打开 android 以尝试重新连接到 ActiveMQ 我在 ActiveMQ 中收到以下错误:
2013-09-29 19:25:50,064 | WARN | Transport Connection to: tcp://192.168.0.108:54395 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///192.168.0.108:54395@1883
2013-09-29 20:18:20,417 | WARN | Failed to add Connection ID:32132151513546-2:5, reason: javax.jms.InvalidClientIDException: Broker: localhost - Client: dbasdfasdfe0b already connected from tcp://192.168.0.108:59211 | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///192.168.0.108:36745@1883
我猜这与在尝试重新连接之前未断开与服务器的连接有关。也许我可以将 ActiveMQ 配置为删除未使用的连接并在 ActiveMQ 发现客户端断开连接时更快地断开客户端连接?