js连接mqtt接口

前言

最近项目中用到了kafka接口,后来又改用了mqtt接口,今天就来记录一下js如何连接mqtt。

主要是使用了mqtt.js这个库,使用 WebSocket 连接。

mqtt

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,构建于TCP/IP协议上。

mqtt的安装

安装: npm install mqtt -g

引用:import mqtt from 'mqtt';

mqtt的使用

首先,创建一个客户端,并传入一些连接设置;

    // 连接设置
    var options = {
      clean: true,	// 保留会话
      connectTimeout: 4000,	// 超时时间
      reconnectPeriod: 1000,	// 重连时间间隔
      // 认证信息
      clientId,
      username: '',
      password: '',
    }
    var client = mqtt.connect("ws://10.2.xx.xx:8083/mqtt", options);
    

然后,建立连接,订阅主题;

  //建立连接
  client.on('connect', function () {
    //订阅主题client.subscribe(topic, '订阅主题');
    client.subscribe(topic);
  })

接收消息;

  // 接收消息
  client.on('message', (topic, message) => {
    console.log(message.toString())
  }) 

最后,发送信息给主题;

  // 发送信息给 topic(主题) client.publish(topic, '这是给topic发送的信息');
  client.publish(topic, '这是给topic发送的信息');

mqtt请求

mqtt请求在浏览器中其实就是 websocket请求。

先借用http建立连接,然后协议升级成ws协议进行通信。

mqtt请求图片

示例代码

var client = mqtt.connect("ws://10.2.xx.xx:8083/mqtt", {
    clientId: 'mqttjs_' + Math.random().toString(16).substr(2, 8),
    client: true,
    connectTimeout: 4000,
    username: 'admin',
    password: 'public',
    keepalive: 60
  })
  //建立连接
  client.on('connect', function () {
    //订阅主题
    client.subscribe('MQTT-EXP-APPLY-TOPIC');
  })
  
  client.on('error', function (err) {
    console.log('连接错误:', err)
    client.end()
  })
  
  client.on('reconnect', (error) => {
    console.log('正在重连:', error)
  })
  
  // 监听接收消息事件
  client.on('message', (topic, message) => {
    console.log(message.toString())
  }) 
  // 发送信息给 topic
  client.publish('MQTT-EXP-APPLY-TOPIC', '这是给topic发送的信息');

结语

本文到此结束,谢谢大家的观看!

如有问题,欢迎各位指正!

猜你喜欢

转载自blog.csdn.net/m0_47901007/article/details/128390203