MQTT插件支持MQTT 3.1.1 ,同时也可以i让MQTT客户端与其他协议(AMQP 0-9-1、AMQP 1.0和 STOMP)客户端交互 。支持多租户。
(1) 启用插件
安装完RabbitMQ后,默认并没有启动MQTT插件。使用下面命令启用插件
rabbitmq-plugins enable rabbitmq_mqtt
rabbitmq-plugins list
(2) 配置权限
MQTT插件默认允许匿名访问,但不建议。
添加用户。 添加一个用户名和密码都是 "mqtt-test"的用户
rabbitmqctl add_user mqtt-test mqtt-test
设置用户 mqtt-test对虚拟主机(/)具有配置,写,读的权限。用户标记为管理者
rabbitmqctl set_permissions -p / mqtt-test ".*" ".*" ".*"
rabbitmqctl set_user_tags mqtt-test management
(3)添加队列,绑定Exchange和Queus
插件基于exchanges 和 queues实现。也就是 MQTT消息是通过Exchange路由到相应的Queue中。
当Mqtt消息发布到MQTT topics时,会使用topic 类型的exchange (默认为amq.topic) 。订阅者通过队列(queues)获取Mqtt消息。
默认情况下,如果Queue不存在,会自动创建一个Auto-Delete类型的队列。
注意:
(1)MQTT主题使用("/") 分隔;而AMQP 0-9-1使用点(".") 分隔。插件可以在不同协议之间转换,例如将“cities/london”转换成“cities.london”
(2)目前不支持QoS2