设计方案
mio-monitor 用于 ESP32-C3 端。
功能
与 mio-service 建立 websocket 连接。
- 实时获取 PC 设备的硬件状态信息(CPU、内存、IO)。
- 支持对 PC 的一些简单操作(音量、背光亮度)。
思路
建立连接
- 终端设备通过 mDNS 广播自身,附加信息用于区分终端设备类型;
- 终端设备在局域网中扫描广播,发现其他终端设备;
- 终端 A 向终端 B 发出 pair 请求(pair 由其他路由函数提供),终端 B 同意后,双方建立安全的连接,进行 websocket 通信;
- mio-monitor 为 ws 服务端,mio-service 为 ws 客户端。
设备认证
- 服务端生成短时间有效的 pair code,客户端连接 websocket 时,需要附带该 pair code,即为连接成功;
- 服务端立即生成 uuid,发送给客户端,同时在服务端非易失性存储中保存;
- 客户端保存 uuid,以后在连接时附加 uuid 作为认证。
技术栈
Rust (esp-idf-hal)