ThinkerProdProtocolClient.java 1.35 KB
package vc.thinker.mqtt.forwardthinker;

import com.alibaba.fastjson.JSONObject;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.stereotype.Component;
import vc.thinker.absctacts.mqtt.protocol.AbstractNotSubscriptionMqttProtocol;
import vc.thinker.mqtt.forwardthinker.dto.ThinkerReportDTO;
import vc.thinker.mqtt.forwardthinker.enums.FoxGatewayTopicDefinition;
import vc.thinker.mqtt.config.ThinkerMqttConnectionProperties;

import java.util.List;

/**
 * 富士康数据转发新科云 客户端
 *
 * @author HeTongHao
 * @since 2022-06-28 16:00
 */
@Slf4j
@Component
@ConditionalOnBean(ThinkerMqttConnectionProperties.class)
public class ThinkerProdProtocolClient extends AbstractNotSubscriptionMqttProtocol {
    public ThinkerProdProtocolClient(ThinkerMqttConnectionProperties mqttConnectionProperties) {
        super(mqttConnectionProperties);
    }

    @SneakyThrows
    public void report(String protocolCode, ThinkerReportDTO dto) {
        super.getMqttCommandPush().sendMqttMessage(FoxGatewayTopicDefinition.report.genTopic(protocolCode), JSONObject.toJSONString(List.of(dto)).getBytes());
    }

    @SneakyThrows
    public void reportBytes(String topic, byte[] payload) {
        super.getMqttCommandPush().sendMqttMessage(topic, payload);
    }
}