gpt4 book ai didi

node.js - 是否可以将 MQTT 客户端连接到以 Node.JS 作为中间网关的 RabbitMQ?

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:53 24 4
gpt4 key购买 nike

这就是我想做的:

我想使用MQTT将我的客户端连接到Node.JS服务器,然后从那里(Node.JS服务器)我想处理所有的发布/订阅。当客户端发布任何消息时,它将转到 Node.JS 服务器,然后从那里发送到 RabbitMQ 并为订阅者反向发送。

流程就像:-

MQTT -> Node.JS -> RabbitMQ.

编辑:

Server.Js

var mosca = require('mosca')
var pubsubsettings = {
type: 'mqtt',
json: false,
mqtt: require('mqtt'),
host: '127.0.0.1',
port: 1883
};
var settings = {
port: 1883,
backend: pubsubsettings
};

var server = new mosca.Server(settings);
server.on('ready', setup);


function setup() {
console.log('Mosca server is up and running')
}


server.on('clientConnected', function (client) {
console.log('client connected', client.id);
});


server.on('published', function (packet, client) {
console.log('Published : ', packet.payload);
});


server.on('subscribed', function (topic, client) {
console.log('subscribed : ', topic);
});

// fired when a client subscribes to a topic
server.on('unsubscribed', function (topic, client) {
console.log('unsubscribed : ', topic);
});

server.on('clientDisconnecting', function (client) {
console.log('clientDisconnecting : ', client.id);
});


server.on('clientDisconnected', function (client) {
console.log('clientDisconnected : ', client.id);
});

这是我在 mosca 主页上找到的内容。我为 RabbitMQ 连接添加了几行。

现在我想创建一个可以连接到此 Node.JS 服务器的客户端。但我不知道如何连接。

最佳答案

刚刚实现了同样的目标。希望回答对您有帮助

var mosca = require("mosca");
var mqtt = require('mqtt');

var pubsubsettings = {
type: 'mqtt',
json: false,
mqtt: require('mqtt'),
clientId: 'MqttBrokerPublisher',
username: '<USERNAME>',
password: '<PASSWORD>',
host: '<YOUR_HOST>',
port: 1883,
};

var moscaSettings = {
//port: 1883,
backend: pubsubsettings,
http: {
port: 3000,
bundle: true,
static: './'
}
}


var server = new mosca.Server(moscaSettings);

server.on('ready', function(){
console.log('connected to the server');
});

server.on('connect', function(){
console.log('connected to the server');
});

server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});

server.on('published', function(packet, client) {
console.log('Published', packet.payload);
});

server.on('error', function(err) {
console.log('error', err);
});

说明:

在上面的代码中,我使用混合移动应用程序作为 MQTT 客户端(Cordova 应用程序),它仅使用 mqtt.js 通过 websocket 进行通信。

At the time of writing this post there was no cordova plugin the supported iOS. Android only plugin is available. Follow this link

所以我求助于 Mqtt.js 的 websocket 实现,它支持在 cordova webview/browser 上运行的 iOS (9.3+) 和 Android(4.4.4+)/Cross-walk

这里Mosca用作 Node.js Pub/Sub http 服务器网关,连接到我的 Mosquitto-RabbitMQ 后端。最后,我的移动应用程序与 mosca 通信,而 mosca 又与 Mosquitto 通信。

关于node.js - 是否可以将 MQTT 客户端连接到以 Node.JS 作为中间网关的 RabbitMQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com