消费rmq中mqtt协议的demo
主函数类:
public static void main(String[] args) throws MqttException {
String clientId = UUIDTool.getRandomUUID();
MqttClient client = new MqttClient("tcp://10.19.141.219:1883", clientId,
new MemoryPersistence());
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(false);
options.setUserName("root");
options.setPassword("QhVGBvvF".toCharArray());
// 设置超时时间
options.setConnectionTimeout(10);
options.setAutomaticReconnect(true);
// 设置会话心跳时间
options.setKeepAliveInterval(20);
client.setCallback(new PushCallbackService());
client.connect(options);
client.subscribe("ianalysis_dac/admin", 1);
}
统一提供的回调函数类
public class PushCallbackService implements MqttCallback {
private static final HikGaLogger logger = HikGaLoggerFactory.getLogger(PushCallbackService.class);
@Override
public void connectionLost(Throwable throwable) {
logger.info("RabbitMQ MQTT connection is break!", throwable);
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
logger.info("receive one message, topic:{}, Qos:{}, content:{}",
topic,
message.getQos(),
new String(message.getPayload(), Constant.ENCODING_UTF8));
}
@Override
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
logger.info("RabbitMQ deliveryComplete, isComplete:{}, messageId:{}",
iMqttDeliveryToken.isComplete(),
iMqttDeliveryToken.getMessageId());
}
}
该博客展示了一个Java程序,用于订阅并消费通过MQTT协议发布的RabbitMQ消息。程序创建了一个MqttClient实例,设置连接选项如用户名、密码和超时时间,并实现了MqttCallback接口以处理连接丢失、消息到达和传递完成的事件。
3万+

被折叠的 条评论
为什么被折叠?



