MQTT встроенный Моска без какого-либо брокера
Я бы хотел использовать брокер node.js mosca MQTT встроенным способом.
Из документации видно, что для встроенного mosca нужно использовать внешнего брокера, такого как Mosquitto, AMQP, ZeroMQ, Redis. В случае автономного mosca, внешний брокер не требуется. Можно ли запустить встроенную систему mosca так, чтобы не использовался внешний брокер, подобный автономному mosca?
Если это можно сделать, как следует изменить код, который использует redis ниже?
var mosca = require('mosca')
var ascoltatore = {
type: 'redis',
redis: require('redis'),
db: 12,
port: 6379,
return_buffers: true, // to handle binary payloads
host: "localhost"
};
var moscaSettings = {
port: 1883,
backend: ascoltatore,
persistence: {
factory: mosca.persistence.Redis
}
};
var server = new mosca.Server(moscaSettings);
server.on('ready', setup);
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
// fired when a message is received
server.on('published', function(packet, client) {
console.log('Published', packet.payload);
});
// fired when the mqtt server is ready
function setup() {
console.log('Mosca server is up and running')
}
2 ответа
Вот полный исходный код рабочего примера защищенного брокера MQTT, использующего mosca, запускаемого встроенным способом.
var mosca = require('mosca')
var SECURE_KEY = __dirname + '/key.pem';
var SECURE_CERT = __dirname + '/cert.pem';
var settings = {
port: 1883,
logger: {
name: "secureSample",
level: 40,
},
secure : {
port: 7998,
keyPath: SECURE_KEY,
certPath: SECURE_CERT,
}
};
var server = new mosca.Server(settings);
server.on('ready', setup);
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
// fired when a message is received
server.on('published', function(packet, client) {
console.log('Published', packet.payload);
});
// fired when the mqtt broker is ready
function setup() {
console.log('Mosca embedded MQTT broker running now')
}
Mosca является брокером node.js mqtt, который можно использовать:
Standalone
Встроенный в другое приложение Node.js
и с точки зрения масштабируемости, их документы утверждают, что
Несмотря на то, что Mosca является MQTT-брокером, если вам нужно его масштабировать, вам нужно использовать другого брокера, поскольку он не имеет поддержки кластеризации. Вот некоторые из поддерживаемых брокеров:
Redis, хранилище ключей / значений, созданное @antirez.
MongoDB, масштабируемая, высокопроизводительная, ориентированная на документы база данных.
Mosquitto и все реализации протокола MQTT.
RabbitMQ и все реализации протокола AMQP.
ZeroMQ для использования Mosca в режиме P2P.
вот их вики