Mosquitto 安装与配置教程:支持 JavaScript 网页 WebSocket 连接
在 Windows 系统上安装和配置 Mosquitto MQTT 服务器的完整流程。内容包括软件下载安装、服务配置(监听端口、认证、持久化)、防火墙设置以及通过命令行测试通信。此外,还涵盖了 WebSocket 协议的支持配置,并提供了基于 JavaScript 的浏览器端连接示例代码,适用于物联网开发及 Web 实时通信场景。

在 Windows 系统上安装和配置 Mosquitto MQTT 服务器的完整流程。内容包括软件下载安装、服务配置(监听端口、认证、持久化)、防火墙设置以及通过命令行测试通信。此外,还涵盖了 WebSocket 协议的支持配置,并提供了基于 JavaScript 的浏览器端连接示例代码,适用于物联网开发及 Web 实时通信场景。

Mosquitto 2.1 已正式发布,推荐从官方网站获取最新稳定版。
mosquitto-2.1.0-install-windows-x64.exe(适用于 64 位 Windows 系统)。安装步骤:
.exe 文件,选择 '以管理员身份运行'。在我的电脑鼠标右键属性
点击环境变量
添加 mosquitto 的安装路径,例如 C:\Program Files\Mosquitto
验证安装:
打开命令提示符(CMD)或 PowerShell,输入:mosquitto -h
若输出 mosquitto version 2.1.2,则表示安装成功。
安装后,需修改配置文件以启用基本功能和安全设置。
配置文件路径:
C:\Program Files\mosquitto\mosquitto.conf
关键配置项(建议在文件末尾添加或修改):
# 监听所有网络接口的 1883 端口(允许局域网访问)
listener 1883 0.0.0.0
# 禁用匿名访问(必须设置,否则不安全)
allow_anonymous false
# 指定密码文件路径(用于用户名密码认证)
password_file C:\Program Files\mosquitto\pwfile.conf
# 启用消息持久化(服务器重启后保留订阅和保留消息)
persistence true
persistence_location C:\Program Files\mosquitto\data
# 启用日志记录(便于排查问题)
log_dest file C:\Program Files\mosquitto\mosquitto.log
log_type error
log_type warning
log_type notice
注意:Mosquitto 安装后默认只允许本机连接,上述手动配置监听所有 IP 或局域网 IP 之后,需通过服务管理器重启 Mosquitto Broker 才生效,或命令行:net stop mosquitto && net start mosquitto 重启。
创建密码文件:
在命令提示符中,进入安装目录并创建用户(例如用户名 admin,密码 admin123456):
cd "C:\Program Files\mosquitto"
mosquitto_passwd.exe -b pwfile.conf admin admin123456
注意:
-b参数表示非交互式创建,首次创建时使用-c会覆盖文件,后续添加用户时请勿使用-c。
启动服务:
net start mosquitto
或通过 Windows 服务管理器(services.msc)查找 Mosquitto Broker 并启动。
验证服务状态:
sc query mosquitto
状态应为 RUNNING。
打开两个命令提示符窗口进行测试。
窗口 A(订阅主题):
mosquitto_sub -h localhost -p 1883 -t "test/topic" -u admin -P admin123456
窗口 B(发布消息):
mosquitto_pub -h localhost -p 1883 -t "test/topic" -m "Hello from Mosquitto"
如果窗口 A 成功收到消息,则说明 Mosquitto 服务运行正常,认证和通信均无问题。
若需让局域网内其他设备连接此 Mosquitto 服务器,需开放端口 1883。不然局域网内可能无法 ping 得通。
Win + R,输入 wf.msc,回车;1883)→ 点击'下一步'。mosquitto.conf 中添加 listener 8083 并设置 protocol websockets,可支持浏览器端 MQTT 连接。浏览器端连接示例
使用 Paho MQTT.js 或 MQTT.js 库连接:
<script src="https://cdn.bootcdn.net/ajax/libs/mqtt/4.3.7/mqtt.min.js"></script>
<script>
const client = mqtt.connect('ws://your-server-ip:8083/mqtt', {
clientId: 'web-client-' + Math.random().toString(16).substr(2, 8),
clean: true,
reconnectPeriod: 3000
});
client.on('connect', () => {
console.log('Connected');
client.subscribe('test/topic');
});
client.on('message', (topic, payload) => {
console.log(`Received: ${payload.toString()} on ${topic}`);
});
</script>
⚠️ 注意:若使用 wss://(加密),需确保服务器配置了有效 SSL 证书。
cafile、certfile 和 keyfile,建议参考安全指南。acl_file 配置不同用户对不同主题的读写权限。allow_anonymous false 是否设置,且是否提供了正确的用户名和密码。mosquitto_sub?
A:确保安装时勾选了 'Add to PATH',或手动进入 C:\Program Files\mosquitto\ 目录执行命令。mosquitto.log 会记录具体错误信息。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online