架构

入口、EventBus
与在线会话。

常规 MQTT 与 TCP 遥测只使用套接字解析状态、已绑定的 AuthContext、共享编解码 / 配置快照,以及有界内存路由。热路径不做数据库、文件系统、远程认证或控制面操作。

运行时路径

HTTP / MQTT / TCP / UDP devices
          |
          v
transport framing and lifecycle
          |
          v
authentication / ACL / bound AuthContext
          |
          v
versioned DeviceCodec
          |
          v
DeviceEvent(event_id)
          |
          v
bounded EventBus and atomic required-sink admission
          |
          +------ confirmed HTTP webhook
          |
          +------ confirmed framed TCP/RPC stream

工作区职责

公开客户端 crate 只依赖 netbaiot-protocol 与网络库,从不依赖 runtime、transport、broker、session 或 server 实现 crate。

netbaiot-protocol

公开线协议与领域类型、稳定错误、路径,以及协议版本 1

crates/netbaiot-protocol

netbaiot-client

业务 HTTP API 与确认事件流所有权

crates/netbaiot-client

netbaiot-device-sdk

可选的标准 MQTT 3.1.1 与设备 HTTP 便利客户端

crates/netbaiot-device-sdk

netbaiot-core

领域类型与同步 DeviceCodec 特质

crates/netbaiot-core

netbaiot-codecs

有界的厂商 / 设备协议编解码

crates/netbaiot-codecs

netbaiot-runtime

缓存、准入、EventBus、会话、命令、指标与重启 spool

crates/netbaiot-runtime

netbaiot-transports

HTTP、内嵌 MQTT 3.1.1、分帧 TCP、UDP、ACL 与连接所有者

crates/netbaiot-transports

netbaiot-server

校验后的组合、业务 sink、监听器、恢复与优雅关闭

apps/netbaiot-server

netbaiot-cli

仅通过 netbaiot-client 实现的运维接口

apps/netbaiot-cli

内嵌 MQTT 3.1.1

broker 实现 CONNECT 至 DISCONNECT,包括 QoS0、QoS1 与显式 QoS2 状态机。ClientId 不是可信身份。持久会话以已认证 DeviceKey 加 ClientId 为键。MQTT QoS 与 EventBus 投递是分离的契约。

v1/t/{tenant}/p/{product}/d/{device}/up
v1/t/{tenant}/p/{product}/d/{device}/up_ack
v1/t/{tenant}/p/{product}/d/{device}/down
v1/t/{tenant}/p/{product}/d/{device}/down_ack

设计优先级

有意不设 storage crate、SQL 迁移、数据库连接池、持久 outbox、持久命令状态或运行时消息历史。持久业务数据由业务系统持有。