1 环境依赖
1.1 EMQX
版本:4.4.3
文档:https://www.emqx.io/docs/zh/v4.4/
认证:启用auth_http
1.2 IoTServer
环境:支持Windows 、Linux
依赖:.netcore Runtime 6.0+
下载地址: https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0
1.3 IoTWeb
环境:支持Windows、Linux
依赖:.netcore runtime 6.0+
下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0
1.4 客户端
环境:支持Windows7以上、ios、android
分辨率:推荐1366*768 及以上
浏览器:建议使用chrome浏览器
下载地址:https://www.google.cn/intl/zh-CN/chrome/
1.5 MQTT客户端
NewLife.Mqtt
2 EMQX
2.1 Auth_http配置
以docker emq镜像为例
- docker ps 查看镜像进程
- docker exec -it emqx bash 进入emqx镜像
- cd /opt/emqx/etc/plugins 进入配置文件存在路径
- 编辑 emqx_auth_http.cnf 认证文件(参考:官网方文档 /认证/http认证)
注:auth.http.auth_req.url = IotServer部署地址 + 端口
- 进入管理后台
启用http认证插件 Plugins - emqx_auth_http - start(图1),成功启动(图2)
图1
图2
3 客户端
3.1 Http认证
参数说明
参数名称 | 格式 | 备注 |
ClientId | $"{ProductKey}|{DeviceCode}|{ip}|{mi.UUID}" | 认证客户端编号 |
UserName | $"{DeviceCode}|{DateTime.UtcNow.ToLong()}" | 认证用户名 |
Password | Hash(Secret) | 认证密码Md5散列 |
3.2 心跳
3.2.1 Topic
$"sys/{ProductKey}/{DeviceCode}/thing/event/ping/post"
3.2.2 数据报文
名称 | 类型 | 备注 |
AvailableMemory | ulong | 可用内存大小 |
AvailableFreeSpace | ulong | 磁盘可用空间。应用所在盘 |
CpuRate | float | 主频 |
Temperature | double | 温度 |
Battery | double | 电量 |
UplinkSpeed | ulong | 上行速度。网络发送速度,字节每秒 |
DownlinkSpeed | ulong | 下行速度。网络接收速度,字节每秒 |
Macs | string | MAC地址 |
IP | string | 本地IP地址。随着网卡变动,可能改变 |
Processes | string | 进程列表 |
ProcessCount | int | 进程个数 |
TcpConnections | int | 正在传输的Tcp连接数 |
TcpTimeWait | int | 主动关闭的Tcp连接数 |
TcpCloseWait | int | 被动关闭的Tcp连接数 |
Uptime | int | 开机时间,单位s |
Time | long | 本地UTC时间。ms毫秒 |
Delay | int | 延迟 |
3.3 属性上报
3.3.1 Topic
$"sys/{ProductKey}/{DeviceCode}/thing/property/post"
3.3.2 数据报文
名称 | 类型 | 备注 |
DeviceCode | String | 设备编号 |
Items | Object[] | 数据集合 |
Time | long | 采集时间戳(UTC) |
Name | String | 属性名称 |
Value | String | 属性值 |
3.4 指令接收(暂时未实现)
3.4.1 Topic
Topic | 备注 |
$"sys/{ProductKey}/{DeviceCode}/thing/event/ping/post_reply" | 心跳回复 |
$"sys/{ProductKey}/{DeviceCode}/thing/property/post_reply" | 属性回复 |
$"sys/{ProductKey}/{DeviceCode}/thing/service/property/set" | 属性设置 |
$"device/{ProductKey}/{DeviceCode}/upgrade" | 升级 |
4 服务端
4.1 MQTT服务器配置
默认访问地址:部署服务器:1880