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

本文介绍了如何使用docker安装并配置rabbitmq,重点在于启用mqtt插件和设置端口映射,以便支持websocket over mqtt。通过docker运行rabbitmq-mqtt镜像,启用必要的插件,并进行端口映射,最后提供了测试websocket连接的说明。
2060

被折叠的 条评论
为什么被折叠?



