一分钟教你使用mqtt

104 阅读1分钟

项目里有个需要及时应答的需求,普通的http接口无法满足,所以选择了mqtt来作为通信。

1.安装mqtt

npm i mqtt

2.引用mqtt import mqtt from "mqtt"

3.使用mqtt

  const clientId = Math.random();

  const options = {
    keepalive: 60,
    reconnectPeriod: 10000,
    connectTimeout: 30 * 1000,
    clientId,
    protocolVersion: 4,
  }
  const wsUrl = process.env.NODE_ENV === 'development' ? url : '';
  const client = mqtt.connect(wsUrl, options);
  //配置好后订阅主题
  client.subscribe(`你的主题`,{qos: 2},
  // 订阅后可监听
  client.on("message", (topic: string, message) => {
    console.log(`received message: ${message} from topic: ${topic}`);
  });
  // 还可查看异常
  client.on('error', (err) => {
    console.log('Connection error: ', err)
    // client.end()
  })
  //监听连接状态
  client.on('connect', () => {
    console.log('MQTT client connected');
    // 执行其他操作
  });
  client.on('reconnect',(err)=>{
    console.log('正在进行重连',err);
  })
  

这里需注意的是clientId必须为唯一值,否则会一直出现断连重连的现象!