使用docker安装rabbitmq(mqtt)

Rabbitmq是一个开源的amqp的实现,但是也支持mqtt协议,本文旨在使用docker搭建rabbitmq服务器,使用mqtt协议。

搜索rabbitmq的镜像

docker search rabbitmq

这里写图片描述

其中第一个镜像rabbitmq是官方镜像,可以直接使用,但是这个默认是没有启动其他插件的。
也可以直接使用rabbitmq:management镜像,这个是启用了网页管理端的;
也可以直接使用rabbitmq-mqtt,这个是启用了mqtt插件的。
这里直接使用rabbitmq-mqtt。

docker pull cyrilix/rabbitmq-mqtt

启动rabbitmq容器

docker run -d cyrilix/rabbitmq-mqtt

我们可以通过以下命令查看rabbitmq中启动了什么插件

docker exec <容器ID> rabbitmq-plugins list

可以看到我们启用了rabbitmq_management和rabbitmq_mqtt,如果我们需要浏览器通过websocket连接到rabbitmq,我们还需要启动rabbitmq_web_mqtt插件

docker exec <容器ID> rabbitmq-plugins enable rabbitmq_web_mqtt

端口映射

rabbitmq管理控制台的默认端口是15672,mqtt默认端口是1883,websocket默认端口是15675
所以启动容器的时候需要做端口映射,否则无法通过宿主机器访问

docker run -p 1883:1883 -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 8883:8883 -p 15672:15672 -p 25672:25672 -p 15675:15675  -d cyrilix/rabbitmq-mqtt 

测试websocket over mqtt

可以使用paho提供的demo:http://www.eclipse.org/paho/clients/js/utility/
其中端口号是15675,path是/ws,账号密码是guest/guest

关于如何启动rabbitmq的mqtt插件

官方文档:
mqtt http://www.rabbitmq.com/mqtt.html
websocket over mqtt http://www.rabbitmq.com/web-mqtt.html

猜你喜欢

转载自blog.csdn.net/lblblblblzdx/article/details/80374558