设计方案

mio-monitor 用于 ESP32-C3 端。

功能

与 mio-service 建立 websocket 连接。

  • 实时获取 PC 设备的硬件状态信息(CPU、内存、IO)。
  • 支持对 PC 的一些简单操作(音量、背光亮度)。

思路

建立连接

  1. 终端设备通过 mDNS 广播自身,附加信息用于区分终端设备类型;
  2. 终端设备在局域网中扫描广播,发现其他终端设备;
  3. 终端 A 向终端 B 发出 pair 请求(pair 由其他路由函数提供),终端 B 同意后,双方建立安全的连接,进行 websocket 通信;
  4. mio-monitor 为 ws 服务端,mio-service 为 ws 客户端。

设备认证

  1. 服务端生成短时间有效的 pair code,客户端连接 websocket 时,需要附带该 pair code,即为连接成功;
  2. 服务端立即生成 uuid,发送给客户端,同时在服务端非易失性存储中保存;
  3. 客户端保存 uuid,以后在连接时附加 uuid 作为认证。

技术栈

Rust (esp-idf-hal)