我想在一个嵌入式的方式使用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')
}发布于 2016-12-07 20:46:54
下面是一个使用mosca以嵌入式方式运行的安全MQTT代理的完整源代码。
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')
}发布于 2016-11-20 21:09:05
Mosca是一个node.js mqtt broker,可以使用:
另一个Node.js应用程序中的
在可伸缩性方面,他们的文档指出
尽管Mosca是一个MQTT代理,但如果您需要向外扩展它,您需要使用另一个代理,因为它本身没有任何集群支持。它支持的一些代理如下:
MQTT是由@antirez.
here 是他们的维基
https://stackoverflow.com/questions/39989111
复制相似问题