编号:B-11 严重级:high 工作线:broker(internal/broker) 来源:审查 I-06 依赖:无(依赖消息线维护的上下线字段,B-09 (#16) 后仍由消息线写) 被依赖:无
采用审查 I-06 的方案:判断闲置时取 max(session_used_at, 内存 usedAt, 不早于签发时间的 online_since / offline_since),当前在线(online_since > offline_since)直接视为在用。启动恢复会把停机前在线端的 offline_since 设为启动时间,重启后的大批重连自然算"刚用过"。按小时落库失败降级为只记日志,不让 CONNECT 失败。
max(session_used_at, 内存 usedAt, 不早于签发时间的 online_since / offline_since)
语义以 PRD F02 / D29"没用过"为准:在线即在用。否则常电设备、接入方后台连续在线满 30 天后第一次重连会被 0x86 拒绝,SDK 以会话失效停止重连;服务运行满 30 天后重启时这类设备会同时被登出。
internal/broker/authn.go。
internal/broker/authn.go
与 B-10 同文件不同函数,按 broker 线顺序合入。
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
session_used_at
touchSessionUsed
broker/authn.go:147-173
broker/authn.go:175-192
loadEndpoint
session_issued_at
online_since
offline_since
max(session_used_at, 内存 usedAt, 不早于签发时间的 online_since/offline_since)
online_since > offline_since
broker/authn.go
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 91e887b fix: 完成 broker 复审 B-03 至 B-12 (#18)。
0c9b459
91e887b
No dependencies set.
The note is not visible to the blocked user.
编号:B-11 严重级:high 工作线:broker(internal/broker) 来源:审查 I-06
依赖:无(依赖消息线维护的上下线字段,B-09 (#16) 后仍由消息线写) 被依赖:无
结论与统一方案
采用审查 I-06 的方案:判断闲置时取
max(session_used_at, 内存 usedAt, 不早于签发时间的 online_since / offline_since),当前在线(online_since > offline_since)直接视为在用。启动恢复会把停机前在线端的 offline_since 设为启动时间,重启后的大批重连自然算"刚用过"。按小时落库失败降级为只记日志,不让 CONNECT 失败。语义以 PRD F02 / D29"没用过"为准:在线即在用。否则常电设备、接入方后台连续在线满 30 天后第一次重连会被 0x86 拒绝,SDK 以会话失效停止重连;服务运行满 30 天后重启时这类设备会同时被登出。
改动文件
internal/broker/authn.go。与其他问题的交互 / 冲突说明
与 B-10 同文件不同函数,按 broker 线顺序合入。
验收与测试
问题明细(各区审查原文,证据含文件与行号)
[I-06] 「30 天没用」按最后一次认证时间算,一直在线的设备重连会被判失效
session_used_at只在令牌认证或密码登录时刷新,连接在线期间不刷新。touchSessionUsed返回错误,会让整个 CONNECT 失败。broker/authn.go:147-173。broker/authn.go:175-192。session_used_at。loadEndpoint多读session_issued_at、online_since、offline_since。max(session_used_at, 内存 usedAt, 不早于签发时间的 online_since/offline_since);当前在线(online_since > offline_since)直接视为在用。broker/authn.go。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交91e887bfix: 完成 broker 复审 B-03 至 B-12 (#18)。