0

我想以嵌入式方式使用 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')
}
4

2 回答 2

3

这是使用 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-12-07T12:46:54.400 回答
1

Mosca 是一个 node.js mqtt 代理,可以使用:

  • 独立

  • 嵌入到另一个 Node.js 应用程序中

在可扩展性方面,他们的文件指出

尽管 Mosca 是一个 MQTT 代理,但如果您需要扩展它,您需要使用另一个代理,因为它本身没有任何集群支持。它支持的一些经纪人如下:

  • Redis,由@antirez 创建的键/值存储。

  • MongoDB,一个可扩展的、高性能的、面向文档的数据库。

  • Mosquitto 和 MQTT 协议的所有实现。

  • RabbitMQ 和 AMQP 协议的所有实现。

  • ZeroMQ 以 P2P 方式使用 Mosca。

是他们的维基

于 2016-11-20T13:09:05.027 回答