MQTTを学習し、MQTTをRabbitMQと理解している問題に直面しています(http://blog.airasoul.io/the-internet-of-things-with-rabbitmq-node-js-mqtt-and-amqp/)。公開後にメッセージが受信されません。 RABBITMQ MQTT
パブリッシャーコードを実行すると、キューにmqtt-subscription-test-qos1が追加されますが、メッセージがそのキューに追加されないときに問題が発生します。私はこのキューにamq.topicのバインドを追加しましたが、キーバインディング 'presence'を使用しました。
これは私の出版社コード
var payload = {
message : 'Hello'
};
var client = mqtt.connect(url, { clientId: 'test-', clean:true});
client.on('connect', function() {
client.publish('presence', JSON.stringify(payload), { qos: 1 }, function() {
console.log("Sent");
client.end();
process.exit();
});
});
で、以下の私の加入者コードです。
var client = mqtt.connect(url, { clientId: 'test-', clean:true});
client.on('connect', function() {
client.subscribe('presence', { qos: 1 });
});
client.on('message', function (topic, message) {
console.log('received message ', message.toString());
});
これは、パブリッシャーコードでconnect関数を使用してオプションを宣言していないときに機能します。だから私が得意ではないのは、パブリッシャーがキューを作成してトピックに公開することではないということですか?
私は間違っていますか?
publishコールバックから 'client.end'と' process.exit'コールを削除するとうまくいくのですか? – hardillb