Windows系统下本地MQTT服务器搭建,及开机自启

转载:https://blog.csdn.net/weixin_41542513/article/details/134328627

 

1.下载并安装emqx服务器
1. 访问Eqmx官网:  https://www.emqx.io/zh

2. 选中合适的MQTT服务器版本
由于我们使用的是本地部署MQTT服务器,而且只使用基础功能的MQTT服务器功能,所以选中“大规模分布式MQTT消息服务器”即可,如下如图所示,点击下载按钮,下载。

3. 选中“Windows”,下载“ emqx-5.3.0-windows-amd64.zip ”,如下图所示。

 

 

 

 

4. 在电脑任意一个盘,新建文件夹,例如“EMQX”文件,然后将下载的压缩文件解压,如下图所示。


2.运行emqx服务器(即MQTT服务器),并登录服务器后管理页面。
1. 启动EMQX(即MQTT服务器)

然后,在命令行输入“./emqx start”,即可启动MQTT服务器,如下图所示。

 

 

 

2. 登录MQTT服务器后台管理界面

①通过浏览器访问http://localhost:18083/(localhost 可替换为您的实际 IP 地址),如下图所示。

http://localhost:18083/

②输入默认账号和默认密码,登录MQTT服务器后台管里界面
输入默认账号为“admin”,默认密码为“public”,然后点击登录按钮,进入MQTT服务器后台管里界面。

如果第一次使用,会提示“为了保护账户安全,请修改默认密码”,如下图所示,你可以选择“跳过”,或者修改密码。

登录成功后,MQTT服务器后台管里界面,如下图所示。


3.增加MQTT1和MQTT2用户。
1. 创建认证
点击按钮创建认证,如下图所示。

认证方式选中“Password-Based”,即使用客户端用户名、Client ID与密码进行认证,如下图所示。

“数据源”选中“内置数据库”,如下图所示。

配置参数,账号类型选中“username”,密码加密方式选中“sha256”,加盐方式选中“suffix”,如下图所示。

2.创建用户
如下图所示,创建认证后,点击“用户管理”,进入用户管理界面。

进入用户管理界面之后,点击“+”按钮,分别添加“MQTT1”和“MQTT2”用户,如下图所示。

用户名分为“MQTT1”和“MQTT2”,密码都是“123456”,都是“超级管理员”,如下所示。

创建完MQTT1和MQTT2用户后,用户界面如图下所示。


4.测试本地部署的MQTT服务器
1. 下载EMQX的(MQTT客户端),如下图所示。

2. 分别打开两个MQTT5.0客户端工具。

3.将两个MQTT5.0客户端工具的语言设置为“简体中文”,步骤下图所示。

4. 新建MQTT1和MQTT2的用户连接
分别点击客户端1和客户端2的新建连接按钮,如下图示所示。

5. 配置MQTT1和MQTT2的用户连接参数
名称和Client ID可以任意填写,这里客户端1填写hao1,客户端2填写hao2,服务器地址都选中“mqtt://”并填写“127.0.0.1”,端口都是“1883”,用户名分别填写“MQTT1”和“MQTT2”,密码都是“123456”,MQTT版本都选中“3.1.1”,如下图所示。

6.点击两个客户端的连接按钮,连接MQTT服务器,如下图所示

7. 设置两个客户端的发布主题。
客户端1的发布主题为“/MQTT1/pub”,
发布的数据为

{
"wendu": 23.56
}
1
2
3
客户端2的发布主题为“/MQTT2/pub”,
发布的数据为

{
"shidu": 77.56
}
1
2
3
如下图所示。

8.设置两个客户端的订阅主题。

设置订阅接收数据格式为JSON并且选中只显示已接收数据,如下图所示。

9. 分别点击两个客户端发布按钮。
如下图所示,当我们点击客户端1的发布主题按钮时,在客户端2上的订阅主题接收到客户端1发布的主题的温度JSON数据,当我们点击客户端2的发布主题按钮时,在客户端1上的订阅主题接收到客户端2发布的主题的湿度JSON数据。


5.小结
本教程讲述了如何在Windows电脑本地上搭建MQTT服务器,怎样进入MQTT服务器后台管理界面,如何在MQTT服务器上添加用户,如何通过MQTT客户端连接MQTT服务器,并通过两个MQTT客户端演示了MQTT通信的简单发布主题和订阅主题。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_41542513/article/details/134328627

 

二:加入开机自启

创建bat文件

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit


REM 此处为MQTT文件目录
set EMQX_PATH=C:\A-MySelf\emqx-5.3.2-windows-amd64
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文件

电脑重启之后:

 

方法 二:方法1【shell:startup】是开机启动程序,此种方法必须登录后才会执行,此时可以使用另一种方法:


在没有输入Windows登陆的用户名密码的时候, 服务程序就已经启动了。也就是说, 不需要登陆系统, 服务程序就会启动。
而与之相对的就是 程序-》启动 (英文版系统 Start-》Startup)
这个启动是在登陆系统之后才会被启动的

【任务计划程序】方式:

 以下为添加【任务计划程序】的方法

 

 

 

 

 

本文为博主原创文章,未经博主允许不得转载。

原文链接:https://blog.csdn.net/WangKun_0612/article/details/132490230

posted @ 2024-05-10 16:30  人生为卒  阅读(2818)  评论(0编辑  收藏  举报