mqtt浅出

mqtt

  • 实时可靠的消息服务,也有基于UDP的
  • 可以以极少的代码和有限的带宽
  • 客户端-服务器的消息发布/订阅传输协议
  • 可接受不可知数据格式
  • Mqtt是三端协议
    发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
  • 消息的内容:主题(Topic)和负载(payload)两部分:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Spring Boot创建MQTT客户端项目时,可以通过配置实现MQTT的自动重连。具体步骤如下: 1. 在application.properties文件中添加MQTT连接相关配置,例如: ``` spring.mqtt.username=your_username spring.mqtt.password=your_password spring.mqtt.url=tcp://your_mqtt_server_url:1883 spring.mqtt.clientId=your_client_id ``` 2. 在MQTT配置类中添加MQTT连接工厂和消息监听器等相关配置,例如: ``` @Configuration public class MqttConfig { @Autowired private MqttProperties mqttProperties; @Bean public MqttConnectOptions getMqttConnectOptions() { MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); mqttConnectOptions.setUserName(mqttProperties.getUsername()); mqttConnectOptions.setPassword(mqttProperties.getPassword().toCharArray()); mqttConnectOptions.setServerURIs(new String[]{mqttProperties.getUrl()}); mqttConnectOptions.setKeepAliveInterval(2); mqttConnectOptions.setAutomaticReconnect(true); return mqttConnectOptions; } @Bean public MqttClient getMqttClient() throws MqttException { MqttClient mqttClient = new MqttClient(mqttProperties.getUrl(), mqttProperties.getClientId()); mqttClient.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable throwable) { // 连接丢失后的处理逻辑 } @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { // 消息到达后的处理逻辑 } @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { // 消息发送完成后的处理逻辑 } }); mqttClient.connect(getMqttConnectOptions()); return mqttClient; } @Bean public MqttPahoMessageDrivenChannelAdapter mqttPahoMessageDrivenChannelAdapter() throws MqttException { MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter( mqttProperties.getUrl(), mqttProperties.getClientId(), getMqttClientFactory(), "your_topic"); adapter.setCompletionTimeout(5000); adapter.setConverter(new DefaultPahoMessageConverter()); adapter.setQos(1); return adapter; } @Bean public DefaultMqttPahoClientFactory getMqttClientFactory() { DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); factory.setConnectionOptions(getMqttConnectOptions()); return factory; } } ``` 其中,setAutomaticReconnect(true)表示开启MQTT自动重连机制。 3. 在需要使用MQTT的地方注入MqttPahoMessageDrivenChannelAdapter,并调用start()方法启动消息监听器,例如: ``` @Autowired private MqttPahoMessageDrivenChannelAdapter adapter; public void start() { adapter.start(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值