代码之家  ›  专栏  ›  技术社区  ›  Ahmad Raza

如何将回调函数连接到mosca身份验证方法?

  •  0
  • Ahmad Raza  · 技术社区  · 6 年前
    var mqtt = require('mqtt')
    var options = {
      username: 'abc',
      password: 'xyz',
    }
    var client  = mqtt.connect('mqtt:localhost:1883', options);
    
    function authenteClient() {
          // I need to call this function against the callback at server's 
          // authenticate function.
    }
    

    在上面的代码中,我在选项中为这个mqtt客户机提供用户名和密码。

    var mosca = require('mosca');
    var ascoltatore = {
        type: 'mongo',
        url: 'mongodb://localhost:27017/mqtt',
        pubsubCollection: 'ascoltatori',
        mongo: {}
        };
    
    var settings = {
      port: 1883,
      backend: ascoltatore 
    };
    var server = new mosca.Server(settings);
    server.on('ready', setup);
    
    function setup() {
      server.authenticate = authenticate;
      console.log('Mosca server is up and running');
    }
    
    var authenticate = function(client, username, password, callback) {
       console.log(username, password);
       callback(true);
    }
    

    在服务器端的 authenticate 函数,我需要在客户端连接一个回调,该回调在那里被调用为 callback(true)

    2 回复  |  直到 6 年前
        1
  •  0
  •   hardillb    6 年前

    如果客户端在代理端的身份验证失败,它将无法连接。

    如果通过,它将连接,您可以使用 client.on('connect',function(){}) 事件侦听器。

        2
  •  0
  •   Max BigBudget    4 年前

    派对迟到,但在客户端,您可以这样做:

    //Handle errors
    client.on("error", (error) => {
      console.log("Error: ", error.message);
    });
    

    在此阶段,服务器的任何错误都可以正常处理。

    推荐文章
    Nisbo  ·  mqtt代理-aclfile
    6 年前