package com.ruoyi.mqtt.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

/**
 * @author jianglw
 * @version 1.0
 * @date 2021/5/20 9:42
 * mqtt配置类 获取mqtt连接
 */
@Slf4j
@Component
public class MqttConfiguration {
    @Autowired
    private MqttPushClient mqttPushClient;

    public static String host="tcp://127.0.0.1:1883";
    public static String clientId="mqttjs_cloud";
    public static String userName="admin";
    public static String password="public";
    public static int timeout=1000;
    public static int keepAlive=10;
    /**
     * 连接至mqtt服务器,获取mqtt连接
     * @return
     */
    @Bean
    @Primary
    @ConditionalOnProperty(prefix = "mqtt", name = "enabled", havingValue = "true")
    public MqttPushClient getMqttPushClient() {
        log.info( host,clientId );
        //连接至mqtt服务器,获取mqtt连接
        mqttPushClient.connect(host, clientId, userName, password, timeout, keepAlive);
        //一连接mqtt,就订阅默认需要订阅的主题(如test_queue)
        new MqttSubClient(mqttPushClient);
        return mqttPushClient;
    }
}