EMQX作为MQTT服务端的应用

1、下载Windows最后支持的版本v5.3.2

https://www.emqx.com/zh/downloads/broker/v5.3.2

2 解压zip

2.3 启动EMQX
在 D:\software\emqx\emqx-5.3.2-windows-amd64\bin执行cmd
执行启动指令 emqx start


修改端口
配置 TCP 监听器
TCP 监听器是一种网络服务,它在特定的网络端口上监听传入的 TCP 连接。它在客户端与 EMQX 之间通过 TCP/IP 网络建立和维护连接中发挥重要作用。
在 EMQX 中配置 TCP 监听器,需在 EMQX 安装目录下的 etc 文件夹中的 emqx.conf 文件添加 listeners.tcp 配置项。
例如,若要启用端口 1883 上的 TCP 监听器,并设置监听器最多允许 1,024,000 个并发连接,可使用以下配置:

listeners.tcp.default {
  bind = "0.0.0.0:1883"
  max_connections = 1024000
}

node {
  name = "emqx@127.0.0.1"
  cookie = "emqxsecretcookie"
  data_dir = "data"
}

cluster {
  name = emqxcl
  discovery_strategy = manual
}

dashboard {
    listeners.http {
        bind = 18083
    }
}

listeners.tcp.default {
    bind = "0.0.0.0:1883"
    max_connections = 1024000
}

 


配置说明:
listeners.tcp.default 代表启用该监听器,default 为监听器名称,可根据需要更改。
bind 设定监听器的 IP 地址及端口,此处配置为监听所有 IP 地址上的 1883 端口的所有传入流量。
max_connections 设置监听器允许的最大并发连接数,默认值为 infinity。


2.4 关闭EMQX
执行关闭指令 emqx stop

三、EMQX Dashboard
访问EMQX Dashboard

地址:http://localhost:18083/
账号/密码: admin/public


网络端口,如 MQTT 默认端口 1883 和用于加密连接的 8883(MQTT/TLS)以及 8083/8084(MQTT/WebSocket)


四、验证
通过 MQTTX 快速验证
MQTTX 是 EMQX 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS、Linux、Windows,并且支持自定义脚本模拟测试、MQTT 消息格式转换、日志记录等多个功能。您可通过 MQTTX 一键式的连接方式和图形界面,您可轻松测试 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 连接。
本节讲介绍如何通过 MQTTX Web 端 快速验证 MQTT 连接,无需下载或安装任何程序。

访问 MQTTX Web 页面。
配置并建立 MQTT 连接。点击 + 新建连接 进入配置页面,您只需配置:
名称:连接名称,如 MQTTX_Test;
服务器地址
通过选择该连接的协议类型,如 WebSockets 协议,ws://;目前 MQTTX Web 端仅支持 WebSocket 协议,如希望测试 SSL/TLS 认证连接,请下载 MQTT 客户端;
填入之前获取的 EMQX 地址,如 emqx@127.0.0.1
端口:如 WebSockets 协议对应的 8083 端口其他项目保持默认配置,你也可以根据具体业务场景修改。有关页面字段的配置说明,可参考 MQTT 手册 - 快速建立连接。
配置完成后,点击页面右上角的连接按钮建立连接。
订阅相关主题。连接成功后即可快速订阅多个主题。点击页面中部的添加订阅按钮,按照默认配置,我们将订阅匹配 testtopic/# 主题的所有消息,QoS 等级为 0。您可多次重复该项操作以订阅不同主题,MQTTX Web 会通过不同颜色区分各主题。
测试消息的发送与接收。点击页面右下角聊天区域的发送按钮,可以在上方的聊天窗口中看到消息已成功发送。

 

五、开机自启动

创建bat文件

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
 
set EMQX_PATH=D:\emqx-5.1.4
set OUTPUT_FILE=%EMQX_PATH%\emqx_monitor.log
 
:loop
cd /d "%EMQX_PATH%"
 
REM 获取当前日期时间,并格式化为时间戳
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (
    set year=%%a
    set month=%%b
    set day=%%c
)
for /f "tokens=1-3 delims=: " %%a in ('time /t') do (
    set hour=0%%a
    set minute=%%b
)
set timestamp=%year%-%month%-%day% %hour:~-2%:%minute%
 
cd bin
emqx_ctl status | findstr /C:"Node 'emqx@127.0.0.1'" | findstr /C:"is started" >NUL
IF "%ERRORLEVEL%"=="0" (
    echo [%timestamp%] EMQX is running normally. >> %OUTPUT_FILE%
) ELSE (
    echo [%timestamp%] EMQX is not running. Restarting... >> %OUTPUT_FILE%
 
    REM 结束之前的 EMQX 进程,可以通过 taskkill 命令来实现
    REM taskkill /f /im beam.smp.exe >NUL
 
    start /b cmd /c "%EMQX_PATH%\bin\emqx start"
 
    echo [%timestamp%] EMQX has started. >> %OUTPUT_FILE%
 
    REM 如果 EMQX 不直接启动一个新窗口,可以将上面一行修改为以下内容
    REM call %EMQX_PATH%\emqx start
)
 
timeout /t 60 > NUL
goto loop

 

将该文件放到,目录中

 

 鼠标右键,创建快捷方式

 

WIN+R 打开机自启软件的根目录,输入 shell:startup

 

 将快捷方式截切到该目录中

 

 

 启动成功之后,会在安装目录出现emqx_monitor.log log文件

电脑重启之后:

 

 

posted on 2025-03-10 10:14  张彦山  阅读(704)  评论(0)    收藏  举报