赞
踩
相信看到这篇教程的人应该对MQTT协议有了一定的了解。其实提供MQTT服务的厂商也有很多,比较知名的有EMQX等。EMQX虽然提供了免费的公共MQTT5服务器。
但是对于多个用户利用公共服务器同时订阅或发布同一主题内容时,可能会接收到其他设备发布但是我们并不想接收的消息。
下面教大家如何利用已有服务器(教程以阿里云ECS为例,系统为Ubuntu20.04 64位)搭建一个个人的基于EMQX的MQTT服务器(EMQX官方文档)。
EMQX端口配置
端口号 | 服务 |
---|---|
1883 | MQTT TCP 端口 |
8883 | MQTT TCP/ssl 端口 |
8084 | MQTT Websocket/wss 端口 |
8083 | MQTT Websocket/ws 端口 |
8081 | HTTP API端口 |
18083 | DashBoard 控制台端口 |
根据需求,在服务器安全组打开对应端口:
如果服务器安装了宝塔面板也需要在宝塔面板的【安全】页面开启端口:
远程连接服务器,输入命令:
根据自己服务器系统或emqx需求版本的不同,参照emqx官方的emqx版本选择进行版本选择安装(Ubuntu20.04 64位可以直接跟着本文操作)
wget https://www.emqx.com/zh/downloads/broker/4.4.3/emqx-4.4.3-otp24.1.5-3-ubuntu20.04-amd64.deb
sudo apt install ./emqx-4.4.3-otp24.1.5-3-ubuntu20.04-amd64.deb
emqx start
此时直接访问ip:18083
即可进入Dashboard登录界面
初始用户密码为
Username:admin
Password:public
尝试使用MQTTX访问服务器:
连接成功:
1883端口连接成功!
发布、订阅同一主题:
可以看到发布与订阅功能均能够使用。
1883端口能够实现TCP通信,至此,一个MQTT服务器已搭建完成。
但此时我们的8084端口其实是无法连接的,是因为我们没有给emqx配置ssl证书。
因为涉及到域名绑定问题,择日会更新关于连接emqx的ws,wss服务端口(8083、8084)的教程。因为如果使用小程序连接mqtt服务器的话,服务器必须支持wss协议通信。
可以持续关注博客或关注博主b站动态:到底文不文SAMA获取最新消息。
命令 | 含义 |
---|---|
emqx start | 后台启动 EMQX Broker |
emqx stop | 关闭 EMQX Broker |
emqx restart | 重启 EMQX Broker |
emqx console | 使用控制台启动 EMQX Broker |
emqx foreground | 使用控制台启动 EMQX Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令 |
emqx ping | Ping EMQX Broker |
在/etc/emqx
目录下
配置文件 | 说明 |
---|---|
emqx.conf | EMQX 配置文件 |
acl.conf | EMQX 默认 ACL 规则配置文件 |
plugins/*.conf | EMQX 各类插件配置文件 |
certs | EMQX SSL 证书文件 |
# 卸载emqx
sudo apt-get remove emqx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。