mqtt封装

import mqtt from './mqtt.min.js'

import api from './apiUrl';



export const LISTENMQTT = {

  CONNECT_SUCCESS: 'CONNECTSUCCESS', //链接成功

  SUBSCRIBE_SUCCESS: 'SUBSCRIBESUCCESS', //订阅成功

  SUBSCRIBE_FAILED: 'SUBSCRIBE_FAILED', //订阅失败

  SENDMESSAGE_SUCCESS: 'SENDMESSAGE_SUCCESS', //消息发送成功!

  CLOSE_SUCCESS: 'CLOSE_SUCCESS', //关闭成功!

}



const Mqtt = function (roomId) {

  this.messageCallback = null



  this.mqtt = mqtt

  this.clientId = guid();

  const options = {

    clean: true,

    connectTimeout: 5000, // 连接超时时间 毫秒

    clientId: this.clientId, // 客户端id

  };

  this.client = this.mqtt.connect(api.MQTT, options)



  this.client.on('connect', e => {

    this.client.subscribe(api.TOPIC + roomId, {}, (err) => {

      console.log('subscribe:' + err)

      // this.client.publish(api.TOPIC + roomId, '测试消息')

    })

  })



  //接收消息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MQTT 是一种轻量级的消息传输协议,可以帮助我们实现设备之间的通信和数据交换。Spring Boot 是一个非常流行的 Java Web 开发框架,提供了很多方便的工具和组件,可以帮助我们快速构建 Web 应用程序。将 MQTT 封装成 Spring Boot 自定义 starter,可以更方便地在 Spring Boot 项目中使用 MQTT。 下面是如何将 MQTT 封装成 Spring Boot 自定义 starter 的步骤: 1. 创建一个 Spring Boot 项目 首先,我们需要创建一个新的 Spring Boot 项目。可以使用 Spring Initializr 或者手动创建一个 Maven 或 Gradle 项目。 2. 添加 MQTT 依赖 在 pom.xml 或 build.gradle 文件中添加 MQTT 的依赖,例如: ```xml <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> </dependency> ``` 3. 创建 MQTT 工具类 创建一个 MQTT 工具类,用于连接 MQTT 服务器、订阅主题、发布消息等操作。可以参考 Eclipse Paho 官方文档编写 MQTT 工具类。 4. 创建自定义 starter 创建一个新的模块,用于封装 MQTT 工具类,可以命名为 mqtt-spring-boot-starter。 在该模块的 pom.xml 或 build.gradle 文件中添加 Spring Boot Starter 的依赖,例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.4.5</version> </dependency> ``` 在 src/main/resources/META-INF 目录下创建 spring.factories 文件,内容如下: ``` org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.mqtt.MqttAutoConfiguration ``` 其中,`com.example.mqtt.MqttAutoConfiguration` 是自动配置类的全限定名,用于将 MQTT 工具类注入到 Spring 容器中。 5. 创建自动配置类 创建一个自动配置类,用于将 MQTT 工具类注入到 Spring 容器中。可以参考 Spring Boot 官方文档编写自动配置类。 ```java @Configuration @ConditionalOnClass({MqttClient.class}) @EnableConfigurationProperties(MqttProperties.class) public class MqttAutoConfiguration { @Bean @ConditionalOnMissingBean public MqttClient mqttClient(MqttProperties properties) throws MqttException { MqttClient mqttClient = new MqttClient(properties.getBrokerUrl(), properties.getClientId(), new MemoryPersistence()); mqttClient.connect(); return mqttClient; } @Bean @ConditionalOnMissingBean public MqttTemplate mqttTemplate(MqttClient mqttClient) { return new MqttTemplate(mqttClient); } } ``` 在上面的代码中,我们使用了 @ConditionalOnClass 和 @EnableConfigurationProperties 注解来控制自动配置类的启用条件和属性配置。 6. 创建配置文件 在 src/main/resources 目录下创建 application.properties 或 application.yml 文件,用于配置 MQTT 的参数。例如: ```properties mqtt.brokerUrl=tcp://localhost:1883 mqtt.clientId=example-client ``` 7. 测试 使用 Spring Boot 的 starter 机制,我们可以非常方便地将自定义的 MQTT Starter 引入到项目中,并直接使用 MQTT 工具类进行操作。例如: ```java @Autowired private MqttTemplate mqttTemplate; public void publishMessage(String topic, String payload) { mqttTemplate.publish(topic, payload.getBytes(), 0, false); } ``` 通过以上步骤,我们就可以将 MQTT 封装成 Spring Boot 自定义 starter,并提供 util 工具访问了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值