mqtt と amqp の通信に問題があります
ポイントは:
MQTT プラグインを備えた RabbitMQ インスタンスがあり、mqtt プロデューサー/コンシューマーと AMQP プロデューサー/コンシューマーもあります (symfony RabbitMqBundle で php-amqplib を使用)
RabbitMQ のドキュメントには、すべての MQTT トピックが amq.topic 交換で機能すると書かれています。
右
私の状況:
/topic/test トピックにサブスクライブされた MQTT コンシューマー/プロデューサー ルート キー .topic.test 上の amq.topic 交換上の AMQP コンシューマー (これについてはわかりませんが、mqtt トピックの . をうさぎに置き換えます)
AMQP が MQTT メッセージを消費する: OK AMQP が MQTT にメッセージを生成する: NOT MQTT から MQTT へ: OK AMQP から AMQP へ: OK
私の mqtt pub/sub は JS クライアントです (一部でテスト済み) 私の AMQP pub/sub は php/symfony にあります
OBS:
私がRabbitMQに行き、amq.topic交換、.topic.testキューでメッセージを送信すると、mqttクライアントは権利を受け取ります
問題はphpクライアントにあります
old_sound_rabbit_mq:
connections:
default:
host: '%queue_host%'
port: '%queue_port%'
user: '%queue_user%'
password: '%queue_password%'
vhost: '/'
lazy: false
connection_timeout: 30
read_write_timeout: 30
keepalive: false
heartbeat: 0
#use_socket: true
producers:
search_driver:
connection: default
exchange_options: {name: 'amq.topic', type: topic}
queue_options: {routing_keys: ['.topic.test']}
consumers:
search_driver:
connection: default
exchange_options: {name: 'amq.topic', type: topic}
queue_options: {routing_keys: ['.topic.test']}
callback: my.consumer.service
これは他の言語やライブラリでは発生しないようです: http://blog.airasoul.io/the-internet-of-things-with-rabbitmq-node-js-mqtt-and-amqp/