一、安装EMQ
- 进入EMQ官网,下载EMQ Windows版本(这里下载了EMQ X Broke v3.2.2,暂时的最新版本)
- 解压emqx-windows10-v3.2.2.zip到自己指定的目录
- 打开命令提示符窗口,进入emqx解压目录
- 输入命令:bin\emqx start 或者bin\emqx console(会弹出Erlang),启动EMQ
- 在浏览器打开http://127.0.0.1:18083,输入默认用户名“admin”和默认密码“public”,进入EMQ管理控制台还可以将其设置为中文面板。
- Erlang中不报错或dashboard中能看到emqx@127.0.0.1即安装成功
二、客户端测试 - MQTT.fx
安装好服务器端之后,使用mqtt的客户端对服务器进行相关测试。
有不少mqtt客户端,mosquito提供了命令行进行测试,我知道的还有mqtt spy也是一个mqtt客户端的可视化界面,这里使用MQTT.fx
创建mqtt连接。指定连接相关信息,包括连接名称(可以随意输入)、代理地址(安装在本地,所以输入127.0.0.1)、端口号(MQTT缺省端口为1883),然后单击“ok”设置完成。其他设置先保持缺省值,可之后慢慢学习。
点击连接,出现以下界面表示连接成功
订阅默认主题home/garden/fountain(可编辑成任何主题)
然后在publish下发布相同主题的消息
subscribe则可以订阅到刚才刚发布的消息。
dashboard中展示出刚才发布订阅消息操作中,统计数据的变化
三、关闭服务
命令提示符中输入bin\emqx stop即可关闭
四、报错:
一般人不会出现的报错,丢了一班人的脸(忽略忽略)
dashboard总提示“URL not found”,开启服务时emqx console中报错如下:
Failed to start Ranch listener 'http:management' in ranch_tcp:listen([{cacerts,'...'},{key,'...'},{cert,'...'},{port,8080},{nodelay,true},{send_timeout_close,true},{send_timeout,15000},{backlog,512}]) for reason eacces (permission denied)
[Plugins] Load plugin emqx_management failed, cannot start plugin emqx_management for {...}
其原因为8080端口被占用,解决办法:
1. 找出占用8080端口的程序,结束进程,然后重启EMQ。
# 在命令提示符中输入下面命令,查看端口8080是否被占用
netstat -aon|findstr 8080
# 结果:此处8080端口被PID 5744占用,监听5744端口中
# TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5744
# TCP [::]:8080 [::]:0 LISTENING 5744
# 输入下面命令,查看时哪个进程或程序占用了某个端口;或者直接进入任务管理器查看详细信息中PID为5744的进程。
tasklist|findstr 5744
# 用以下命令关闭xxx.exe;或者直接在任务管理器中关闭相关进程即可
taskkill /f /t /im xxx.exe
# 再次检查8080端口是否被占用,如果没有信息返回,表示没有被占用,可放心使用啦
netstat -aon|findstr 8080
2. 位于etc\plugins下,修改emqx_management.conf文件中端口为没有被占用的端口,然后重启EMQ
# 修改此处的8080端口为其他没有被占用的端口,如8090
management.listener.http = 8090