一、Broker到底是什么?
MQTT Broker = 消息服务器 / 代理服务器
它的作用只有一个:所有设备和手机App都不直接互相连接,全都连到Broker,由它转发消息。
二、用生活例子秒懂
你有三个东西:
- 智能灯(设备)
- 你的手机App(iOS)
- 中间的Broker
流程:
- 手机App → 连接Broker
- 智能灯 → 连接Broker
- 你在App点「开灯」
- 消息发给Broker
- Broker转给智能灯
- 智能灯状态变了
- 消息发给Broker
- Broker转给手机App
Broker就是消息中转站。
三、为什么一定要用Broker?
- 设备不知道手机在哪
- 手机不知道设备在哪
- 它们不能直接对话
- 必须有一个固定地址、固定服务器来中转
这就是MQTT协议的核心设计。
四、开发智能硬件App时,Broker就是:
-
一个IP地址 + 端口
- 例如:
192.168.1.100:1883 - 或云端地址:
mqtt.aliyun.com
- 例如:
-
你的iOS代码里要填的:
let brokerHost = "tcp://192.168.1.100:1883"
五、常见的Broker有哪些?
做智能硬件一定会用到的:
| Broker | 说明 |
|---|---|
| EMQX | 最常用、免费、本地/云端都能用 |
| Mosquitto | 轻量、适合测试 |
| 阿里云IoT MQTT | 商业云服务 |
| 腾讯云IoT MQTT | 商业云服务 |
| 华为云IoT MQTT | 商业云服务 |
最精简总结
Broker = MQTT服务器 = 消息中转站
手机App和智能硬件,都必须连它才能互相通信。
| 类型 | 示例 | 一句话解释 |
|---|---|---|
| 本地地址 | 192.168.1.100:1883 | 局域网内使用,出门连不上 |
| 云端域名 | mqtt.aliyun.com | 公网访问,全球都能连 |
它们作用一样(都是 MQTT Broker),但使用场景、范围、安全性完全不同。
二、详细对比
1. 192.168.1.100:1883
| 项目 | 说明 |
|---|---|
| 是什么 | 内网IP + 端口,跑在本地电脑/树莓派/开发板上 |
| 访问范围 | 只能在同一WiFi内访问 |
| 网络要求 | 不需要互联网 |
| 适用场景 | 开发调试、本地测试 |
| 端口 | TCP默认1883,SSL默认8883 |
tcp://192.168.1.100:1883
2. mqtt.aliyun.com
| 项目 | 说明 |
|---|---|
| 是什么 | 云服务商提供的公网MQTT服务器 |
| 访问范围 | 手机4G/5G、任何WiFi、全球任意网络 |
| 网络要求 | 必须有互联网 |
| 适用场景 | 正式产品、用户实际使用 |
| 特性 | 有认证、权限、设备管理、消息存储 |
实际阿里云地址格式:
tcp://iot-as-http.cn-shanghai.aliyuncs.com:1883
三、最关键的区别
| 对比维度 | 本地地址 192.168.x.x | 云端域名 mqtt.aliyun.com |
|---|---|---|
| 外网使用 | ❌ 只能局域网,出门就断 | ✅ 全球任何地方都能连 |
| 谁维护 | 你自己维护,断电即停 | 云厂商维护,7×24小时运行 |
| 安全性 | 弱,连上WiFi就能控制 | 强,有身份认证、秘钥、权限控制 |
| 设备数量 | 支持几个设备 | 支持百万级设备 |
四、开发时怎么选?
✅ 开发调试阶段
192.168.1.100:1883
- 方便、快速
- 不用上网、不用注册账号
- 适合本地测试
✅ 正式上线阶段
mqtt.aliyun.com / 腾讯云 / 华为云 / 自有云服务器
五、一句话总结
192.168.1.100:1883= 本地测试用,只能家里连
mqtt.aliyun.com= 云端正式用,全球都能连