0

场景一: 当 SpringBoot 应用程序在没有启动 MQTT 代理的情况下启动时,MqttClient 永远不会在 MQTT 代理启动时尝试重新连接。

场景 2: 但是如果 MQTT 代理在启动 SpringBoot 应用程序之前启动,然后如果 MQTT 代理停止并再次启动,它会尝试重新连接并成功连接回来。

期望 即使对于场景 1,我也期待与场景 2 相同的行为

需要进行哪些更改才能使其适用于场景 1?

MqttClient bean 的片段

    @Bean
    @Autowired
    @Conditional(MQTTConditionCheck.class)
    public MqttClient connect() {
        MqttClient mqttClient = null;
        try {
            mqttClient = new MqttClient(brokerURL, clientId, new MemoryPersistence());
            MqttConnectOptions connOpts = new MqttConnectOptions();
            connOpts.setAutomaticReconnect(true);
            connOpts.setCleanSession(true);
            mqttClient.connect(connOpts);
            mqttClient.reconnect();
        } catch (MqttException e) {
            LOGGER.error("Error occurred :{}", e.getMessage());
        }
        return mqttClient;
    }

服务等级

    @Autowired(required = false)
    private MqttClient mqttClient;
4

0 回答 0