Skip to content

设备接入(UDP 协议) ​

这篇解决什么 ​

无连接上报怎么认会话、业务帧为什么还要带 Token。读完能对上 protocol: udp 和 IotUdpProtocol,不要按 TCP 长连接去理解。

产品 protocolType 填 udp。先看 设备接入(概述)。拆包对比见 设备接入(TCP 协议)。

示意图:一包一帧。认证后发 JWT。后续包必须带 token。

从哪改 ​

名称说明仓库路径
协议Vert.x DatagramSocketruoyi-office/yudao-module-iot/yudao-module-iot-gateway/.../udp/IotUdpProtocol.java
上行auth / 注册 / 业务IotUdpUpstreamHandler
会话按来源地址,Guava 过期IotUdpSessionManager
样例id: udp-json,默认关,端口 8093application.yaml

样例:serialize: json,udp.max-sessions=1000,session-timeout-ms=60000,收发缓冲 65536。没有 TCP 那种 delimiter,一包就是一帧。

method=auth:params 里 username / password(同一套 HMAC)。成功回 token,并按来源 IP:端口登记会话、报上线。

method=thing.auth.register:一型一密,不带 Token。业务帧 params 要有 token + body,Token 无效直接未授权。

下行:IotUdpDownstreamSubscriber 按会话地址把指令发回去。源地址变了等于新会话,要重新 auth。

字段 ​

名称说明仓库路径
port样例 8093ProtocolProperties
max-sessions / session-timeout-ms会话上限与空闲过期IotUdpConfig
token / body业务 paramsIotUdpUpstreamHandler

NAT 换端口等于掉线

会话键是来源地址。设备经过 NAT 换了 UDP 源端口,旧会话作废,下行也找不到人。要重新 auth。

业务包不要只靠会话

Handler 仍验 JWT。只连上、不带 token,会回「请先进行认证」。

示意图:按本仓库实现画的时序。

配置与操作 ​

yaml 开 id: udp-json,protocol: udp,默认口 8093。无连接,业务帧仍要带 Token。不要按 TCP 长连接去理解会话。产品 protocolType 填 udp。

开启见 IoT 功能设计。

IoT 首页

本系统截图:IoT 首页。协议实例在网关 yaml,没有「MQTT / HTTP」独立菜单。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版