mqtt 轻量级 broker —— mosquitto
编辑于 2022-06-27 09:51:45 阅读 3388
mqtt broker 之前介绍了 RabbitMQ插件之MQTT,今天再介绍一个轻量级的 mosquitto,安装包mosquitto-2.0.14.tar.gz
只有几百KB,官方的docker镜像也只有几M,非常小
引用一段官方的介绍
Eclipse Mosquitto是一个开源(EPL/EDL许可)消息代理,实现了MQTT协议5.0、3.1.1和3.1版本。Mosquitto重量轻,适用于从低功耗单板计算机到全服务器的所有设备。 MQTT协议提供了一种使用发布/订阅模型进行消息传递的轻量级方法。这使得它适用于物联网消息,如低功耗传感器或移动设备,如手机、嵌入式计算机或微控制器。 Mosquitto项目还提供了一个用于实现MQTT客户端的C库,以及非常受欢迎的mosquitto_pub和mosquitto_sub命令行MQTT客户端。
docker-compose
version: '3'
networks:
web-network:
services:
docker-mosquitto:
image: eclipse-mosquitto:2.0.14
hostname: mosquitto
restart: always
tty: true
volumes:
- ./mosquitto/config:/mosquitto/config
- ../log/mosquitto:/mosquitto/log
- ../apps/mosquitto/data:/mosquitto/data
ports:
- 1883:1883
- 8883:8883
- 15675:15675
- 15676:15676
networks:
- web-network
# mosquitto的web管理后台
# 通过http://localhost:8088/访问
docker-management-center:
image: cedalo/management-center:2.4.2
restart: always
environment:
CEDALO_MC_BROKER_ID: mosquitto
CEDALO_MC_BROKER_NAME: Mosquitto
CEDALO_MC_BROKER_URL: mqtt://docker-mosquitto:1883
CEDALO_MC_BROKER_USERNAME: cw
CEDALO_MC_BROKER_PASSWORD: 123456
CEDALO_MC_USERNAME: "admin"
CEDALO_MC_PASSWORD: "12345"
ports:
- 8088:8088
networks:
- web-network
连接方式
mqtt
适合后端使用
mqtt,需要配置
tcp://localhost:1883
mqtt + tls,需要配置
ssl://localhost:8883
ws
适合前端使用
ws,需要配置
ws://localhost:15675
wss,需要配置
wss://localhost:15676
配置
创建用户
安全起见,禁用匿名连接,先创建密码文件
#创建密码文件
mosquitto_passwd -c /mosquitto/config/password_file cw
config/mosquitto.conf
配置文件
listener 1883
listener 8883
cafile /mosquitto/config/cert/ca.cer
certfile /mosquitto/config/cert/www.cuiwei.net.pem
keyfile /mosquitto/config/cert/www.cuiwei.net.key
listener 15675
protocol websockets
listener 15676
protocol websockets
cafile /mosquitto/config/cert/ca.cer
certfile /mosquitto/config/cert/www.cuiwei.net.pem
keyfile /mosquitto/config/cert/www.cuiwei.net.key
persistence true
persistence_location /mosquitto/data
#log_dest file /mosquitto/log/mosquitto.log
#禁止匿名连接
allow_anonymous false
#cw:123456
password_file /mosquitto/config/password_file
##启用动态安全
#plugin /usr/lib/mosquitto_dynamic_security.so
#plugin_opt_config_file /mosquitto/config/dynamic-security.json
命令行
mosquitto -v
订阅
mosquitto_sub -t test -u cw -P 123456
发布
mosquitto_pub -t test -m 123 -u cw -P 123456
订阅2
mosquitto_sub -v -t topic1
发布2
mosquitto_pub -t topic1 -m message1
其他
关于调试工具,js库,php库,证书如何获取等,完全可以参考RabbitMQ插件之MQTT ,不再赘述。