node.js - Node MQTT.js 与 RabbitMQ 的问题

标签 node.js rabbitmq mqtt

无法使用 node.js mqtt 客户端连接到我的 RabbitMQ 服务器(已启用 MQTT 适配器)。它们之间是否存在兼容性问题?

我可以使用 bluerhinos MQTT PHP 库连接到队列,因此我知道队列名称和主机名等是正确的,并且正在正确检索消息

Node.js 应用

var mqtt = require('mqtt');

var mqttClient = mqtt.connect('mqtt://rabbit:1883');

mqttClient.on('connect', function() {
   console.log("connected");
});

mqttClient.publish('queue', 'message');
PHP

require("vendor/bluerhinos/phpmqtt/phpMQTT.php");

$mqtt = new phpMQTT("rabbit", 1883, "clientId"); 
if ($mqtt->connect()) {
    $mqtt->publish("queue","Hello World! at ".date("r"),1);
    $mqtt->close();
}

MQTT.js 默认生成随机客户端 id,因此与未设置客户端 id 无关。

最佳答案

NodeJS 代码将是异步的,因此您可能在连接完成之前调用发布。尝试此操作以确保它在尝试发布之前等待:

var mqtt = require('mqtt');

var mqttClient = mqtt.connect('mqtt://rabbit:1883');

mqttClient.on('connect', function() {
   console.log("connected");
   mqttClient.publish('queue', 'message');
});

关于node.js - Node MQTT.js 与 RabbitMQ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028544/

相关文章:

node.js - Nodejs 中的 fs.readFileSync() 错误

RabbitMQ:简单的测试程序可能存在网络问题

android - 在 Android 的 onCreate 方法之外调用 mqtt setCallback 方法

javascript - 如何将安全 Web 套接字与 mosquitto 和 JS 一起使用?

Node.js 作为网关

node.js - 推荐将配置传递给模块的方法

javascript - 函数设计接受回调最佳实践

android - WebStorm + React-Native : Navigator is deprecated and has been removed from this package

node.js - RabbitMQ 的 node-celery 与 node-amqp

deployment - 在 Rackspace 云中排队