0

シナリオ 1 : MQTT ブローカーを開始せずに SpringBoot アプリケーションを開始すると、MqttClient は MQTT ブローカーの開始時に再接続を試行しません。

シナリオ 2 : ただし、SpringBoot アプリケーションを開始する前に MQTT ブローカーが開始され、後で 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