物联网:七天构建一个闭环的物联网DEMO
我计划用七天的时间, 基于开源物联网平台, 打造一款物联网案例的闭环。
为了增加感观体验,欢迎大家与我保持亲密的沟通。 我们来看一段代码:
@Slf4j
@Component
public class MqttSendManager {
@Resource
private MqttSendHandler mqttSendHandler;
public void sendToMqtt(String topic, String data) {
mqttSendHandler.sendToMqtt(topic, data);
}
public void sendToMqtt(String topic, Integer qos, String data) {
log.debug("下发网关的qos: {}", qos);
log.info("下发网关的消息: {}", "topic: " + topic + "; "+ data);
mqttSendHandler.sendToMqtt(topic, qos, data);
}
}
以上消息发送管理类可以实现向 mqtt 发送消息, 主要是借用了 MqttSendHandler 的能力,MqttSendHandler 是一个接口, 托管给了 spring 容器实例化,我们看看它的代码:
@MessagingGateway(defaultRequestChannel = "mqttOutputChannel")
public interface MqttSendHandler {
/**
* 使用 自定义 Topic & Default Qos 发送数据
*
* @param topic 自定义 Topic
* @param data string
*/
void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, String data);
/**
* 使用 自定义 Topic & 自定义 Qos 发送数据
*
* @param topic 自定义 Topic
* @param qos 自定义 Qos
* @param data string
*/
void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) Integer qos, String data);
}
这样两个类就封装了与 mqtt 的消息发送接口。
欢迎三连,或者有需要进一步交流的欢迎留言,评论区见。