1

我在使用 mqtt 和 amqp 通信时遇到问题

重点是:

我有一个带有 MQTT 插件的 RabbitMQ 实例,我也有一个 mqtt 生产者/消费者和一个 AMQP 生产者/消费者(在 symfony RabbitMqBundle 上使用 php-amqplib)

RabbitMQ 文档说所有 MQTT 主题都适用于 amq.topic 交换。

正确的

我的情况:

MQTT 消费者/生产者订阅了 /topic/test 主题 AMQP 消费者在 amq.topic 交换上,在路由键 .topic.test 上(我不知道这一点,但兔子替换 / for . on 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