我正在尝试测试使用 MQTT 客户端的 Spring-Boot 应用程序。我想测试几个像这些区域的属性:
- 它是否正确处理连接失败
- 它是否正确处理连接成功
- 它是否正确解析消息有效负载(json?)
- 它是否正确处理格式错误的有效负载。
所以,我的 MQTT 客户端代码是(简化):
@Component
public class MQTTController implements MqttCallback {
MqttClient client;
@Value("${spring.mqtt.serverURI}")
private String serverURI;
@Value("${spring.mqtt.port}")
private String serverPort;
@Bean
private MqttClient receiveData() {
try{
client = new MqttClient(serverURI + ":" + serverPort, "Receiver");
client.connect();
client.setCallback(this);
client.subscribe("someTopic");
return client;
}
catch(Exception e){
log.error("MQTT ERROR");
log.error(e.toString());
}
return null;
}
public void connectionLost(Throwable cause) {
}
public void messageArrived(String topic, MqttMessage message) throws Exception {
someActionWithTheData(message.ToString()); …Run Code Online (Sandbox Code Playgroud)