Можно ли отключить старое соединение mqtt с тем же идентификатором клиента на стороне сервера, если новое соединение получено с тем же идентификатором клиента?
Я использую ActiveMQ 5.11.1, который настроен с mqtt через websocket.
Можно ли отключить старое соединение mqtt с тем же идентификатором клиента на стороне сервера, если новое соединение получено с тем же идентификатором клиента?
Когда я попробовал этот сценарий с помощью hivemq websocket, я получаю сообщение об ошибке следующим образом.
2015-06-18 20:03:06,074 | WARN | Transport Connection to: MQTTSocket_22078239 failed: java.io.IOException: Broker: localhost - Client: abc already connected from MQTTSocket_24236395 | org.apache.activemq.broker.TransportConnection.Transport | qtp20829588-40
1 ответ
Для WS Connector в ActiveMQ необходимо включить параметр allowLinkStealing
ws://0.0.0.0:61614?allowLinkStealing=true
По умолчанию он включен для обычных транспортных соединителей на основе MQTT, но, поскольку транспортный соединитель WS должен обслуживать несколько протокольных соединений (STOMP и MQTT), по умолчанию выключено.