代码之家  ›  专栏  ›  技术社区  ›  mahendra

如何使用mqtt。nodeJS中的客户端(streamBuilder,options)构造函数

  •  1
  • mahendra  · 技术社区  · 7 年前

    我正在尝试使用npm包“MQTT.js”构建简单的MQTT应用程序。我尝试了mqtt。connect()构造函数,它工作得很好,但我想探索MQTT的更多功能,因此我想使用MQTT。client()构造函数。官方文件没有例子,所以我很困惑。 以下是我迄今为止所做的尝试
    var mqtt=需要('mqtt')

    客户1:-

    var mqtt = require('mqtt')
    
    client = mqtt.connect('http://localhost:1883',{clientId :'client1', clean: false});
    
      client.on('connect', function () {
        client.subscribe('presence',{QoS:2});
        client.subscribe('offline',{QoS:2});
        console.log('connected');
      });
      client.on('message', function (topic, message) {
        console.log(message.toString());
      });
    

    客户2:-

    var mqtt = require('mqtt')
    
    client = mqtt.connect('http://localhost:1883',{clientId :'client2', clean: false,will:{topic:'offline',payload:'off',qos:2}});
    
       client.on('connect', function () {
        client.publish('presence', '{message:hello,id:1}',{QoS:2});
    
      });
    

    任何例子都会有帮助。
    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   Yoni Rabinovitch    7 年前

    您可以在connect()调用中直接传递客户端连接选项,如以下代码段所示:

    // Connect with unique clientId and set clean to false, so as to receive any
    // missed QOS 1 or 2 messages received at broker when this worker was down.
    this.MqttClient = mqtt.connect(this.tls_url,{clientId : this.myClientId, clean: false});
    
    this.MqttClient.on('connect', function(connack){
        // do stufff       
    });