package com.dji.sample.component.mqtt.service.impl;
|
|
import com.dji.sample.component.mqtt.model.CommonTopicResponse;
|
import com.dji.sample.component.mqtt.service.IMessageSenderService;
|
import com.dji.sample.component.mqtt.service.IMqttMessageGateway;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* @author sean.zhou
|
* @date 2021/11/16
|
* @version 0.1
|
*/
|
@Service
|
@Slf4j
|
public class MessageSenderServiceImpl implements IMessageSenderService {
|
|
@Autowired
|
private IMqttMessageGateway messageGateway;
|
|
public void publish(String topic, CommonTopicResponse response) {
|
try {
|
ObjectMapper mapper = new ObjectMapper();
|
// Only parameters whose value is not null will be serialised.
|
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
|
messageGateway.publish(topic, mapper.writeValueAsBytes(response));
|
} catch (JsonProcessingException e) {
|
log.info("Failed to publish the message. {}", response.toString());
|
e.printStackTrace();
|
}
|
}
|
|
public void publish(String topic, int qos, CommonTopicResponse response) {
|
try {
|
ObjectMapper mapper = new ObjectMapper();
|
// Only parameters whose value is not null will be serialised.
|
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
|
messageGateway.publish(topic, mapper.writeValueAsBytes(response), qos);
|
} catch (JsonProcessingException e) {
|
log.info("Failed to publish the message. {}", response.toString());
|
e.printStackTrace();
|
}
|
}
|
}
|