一:引言
本文旨在分享如何搭建一个属于自己的MQTT云服务器,这里我们是以阿里云的云服务器举例(腾讯云,OneNet大同小异)。
二:选择云服务器
首先搜索阿里云官网,在官网下依次点击,进入云服务器的选项页面。
这里朋友们可以根据自己的需要选择,如果只是学习测试使用,需求量不大的话,可以试试阿里云的云服务器试用,试用期有三个月。
这里我因为不是第一次使用,所以买的是99/年的ECS服务器来做示范,在购买或拿到试用资源后,需要进行相关配置。这里可以选择使用ubuntu18.04的操作系统。
三:配置云服务器相关信息
配置完成后,我们可以点击右上角的控制台按钮,进入控制台界面。
进入控制台后,我们可以看到自己的公网IP,这是我们后面连接MQTT的关键点,注意不要随意泄露。
接下来我们需要配置我们要用到的端口号,依次点击。
来到安全组配置页面,手动添加我们要监听的端口号,这里总共有6个:1883、8883、8083、8084、8081、18083(每输完一个按回车即可在同一窗口输入下一个),源我们可以选择所有的IPV4,最后点击保存。
其中18083:EMQX服务器控制台网页端口
1883:一般客户端访问EMQX服务器的端口(例如:PC桌面应用程序、ESP8266)
8083:WebSocket客户端访问EMQX服务器的端口,这个要注意WebSocket访问的端口不一样
添加完毕后,我们就可以开始连接我们的云服务器了,这里我提供两种远程连接方式(使用控制台自带的远程连接和使用Xshell工具来进行连接)
四:远程连接云服务器进行MQTT相关文件的下载和启用
1.连接云服务器的两种方法
使用控制台自带的远程连接
回到我们的实例页面,点击远程连接
点击立即登录,在弹出的登录界面输入密码即可完成登录(密码的设置在最初创建云服务器那里进行的设置)
这样就成功连接了我们的云服务器了。
使用Xsheel等工具进行远程连接
2.打开Xsheel,新建会话属性
3.输入我们的云服务的用户名和密码(如果忘记密码,可以去控制台重置密码,用户名一般为root)
输入用户名和密码正确后,显示如下界面,即连接成功。
2.下载MQTT相关文件和检查
前面我们已经远程连接了云服务器,接下来,我们只需要在服务器的命令行中,将下面的命令复制执行一次。
wget https://www.emqx.com/zh/downloads/broker/5.0.8/emqx-5.0.8-ubuntu18.04-amd64.tar.gz
下载完成后,依次执行下列命令
mkdir -p emqx && tar -zxvf emqx-5.0.8-ubuntu18.04-amd64.tar.gz -C emqx
./emqx/bin/emqx start
出现如图所示,则MQTT服务器已经启动成功了。
接下来,我们打开服务器的EMQX 网页端。在电脑浏览器输入公网IP+18083,如:111.229.82.106:18083
3.配置EMQX
进入EMQX的配置页面,第一次进入EMQX,默认用户名是:admin,默认密码是:public,进入界面后可以修改用户名和密码。
根据以下步骤完成客户端与用户的创建(基本就一直点下一步就好啦)
这里输入我们自己想要的用户名和密码,可以勾选上这个超级用户,方便验证。创建两个用户,这样方便我们验证MQTT的功能是否成功
4.测试MQTT功能是否可用
下面我们可以下载MQTTX软件,来进行测试,这里提供MQTTX下载链接
下载好后,运行软件,点击新建连接,按照顺序填写。这里我们需要把服务器的IP改为自己的公网IP。
像这样添加了两个连接(两个连接不同点就是用户名和密码,其余都一样)
然后一个连接订阅主题,另一个连接发布主题,只要订阅主题的连接能正确接收到消息,就说明MQTT已经完全没问题了。
订阅主题:(这里我随便订阅了一个主题:/62)根据大家的实际需求订阅就好了。
发布主题:
好了,到此,如果能正常接收,那我们的云服务器搭建MQTT就正式完成了,如果想要使用Qt来使用我们搭建好的云服务器的话,可以使用我下面提供的简单demo,进行测试(注意修改一下,自己的用户名和密码)。
QT的MQTT测试代码