1

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/

4

0 に答える 0