2025年9月26日 星期五

AIOT_Server 的規劃建議

(使用 MQTT, Redis, MySQL, MongoDB, Node.js, Python, Docker Compose)的技術規劃方向


AIOT_Server 的規劃建議

1. 完善 Node.js 後端服務(gg1_node

您已經處理了 Node.js 版本和 PM2 的問題,下一步應該專注於核心服務邏輯:

  • 實作 Email 註冊與驗證:根據您文件中的流程(使用 MySQL 存使用者資料,Redis 存驗證 Token/時效性資料),需要選定並實作郵件服務(例如:使用 NodeMailer 搭配 SendGrid 或 Mailgun)。

  • 使用者資料模型(MySQL):定義 users 表格,包含 email (PK), password_hash, is_verified (Boolean), created_at 等欄位。

  • Token 處理(Redis):使用 Redis 的 SETEXEXPIRE 功能來儲存 <Token>:<User Email> 鍵值對,並設定 24 小時的有效期限,確保安全性。

2. 規劃 Docker Compose 服務堆疊

為了實現您快速部署的目標,您需要開始撰寫 docker-compose.yml 檔案,定義所有服務:

服務名稱技術/用途備註
gg1_nodeNode.js / Express您的後台網站服務,負責 API 介面、會員管理、網頁呈現。
mosquittoMQTT Broker處理所有 IOT 設備的連線和即時資料傳輸。
redisRedis DB用於快取、Session 管理、Email 驗證 Token 暫存、MQTT 狀態/即時數據暫存。
mysqlMySQL DB用於會員管理IOT 專案/系統/設備階層資料Lev 憑證授權等永久性資料。
mongodbMongoDB DB考慮用於儲存歷史 IOT 數據(如時間序列資料)或非結構化的 Log 資料。

3. IOT 核心資料結構與權限規劃

根據您定義的 IOT 階層與權限:

  • 資料結構(MySQL/MongoDB)

    • IOT_Project:專案名稱、擁有者 (Lev1_User_ID)。

    • IOT_sys:系統名稱、所屬專案 (Project_ID)。

    • IOT_dev:設備名稱、所屬系統 (Sys_ID)。

    • IOT_feature:數據點/功能名稱、所屬設備 (Dev_ID)。

  • 憑證與授權機制

    • 建立 permissionsauthorizations 表格,用於儲存 Lev2 (管理權) 和 Lev3 (監看權) 的授權資訊:User_ID, Resource_Type (Project/Sys/Dev), Resource_ID, Permission_Level (2 or 3), Start_Time, End_Time

    • 這將是您 API 路由和 MQTT 主題訂閱授權時的核心依據。

沒有留言:

張貼留言