Как подключить нашу функцию обратного вызова к методу аутентификации mosca?
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)
,
1 ответ
Решение
Если клиент не проходит аутентификацию на стороне брокера, он не будет подключаться.
Если он пройдет, он подключится, и вы можете получить уведомление, используя client.on('connect',function(){})
слушатель событий.
Поздно, но на стороне клиента вы можете сделать что-то вроде этого:
//Handle errors
client.on("error", (error) => {
console.log("Error: ", error.message);
});
На этом этапе можно корректно обработать любые ошибки сервера.