# 項目介紹
## 基本信息
| 屬性 | 值 |
| --- | --- |
| 產品名稱 | UBot |
| 是否開源 | 是 |
| 許可類型 | 以BSD 3-clause為主,不同組件有不同要求 |
| Github倉庫 | [https://github.com/UBotPlatform](https://github.com/UBotPlatform) |
| Telegram群組 | [https://t.me/ubotplatform](https://t.me/ubotplatform) |
## 項目架構
### 結構圖

### 解說
Router工作在Server模式,接受App和Account(統稱)的RPC連接
當Account收到事件時,首先發送給Router,Router負責將事件根據需要調度給所有應用或部分應用
當App需要執行操作或獲取信息時,首先把請求發送給Router,Router負責將請求發送給對應的Account并轉達回復
App和Account不可直連(由Token保證)
Router可以根據App申請的權限拒絕App的某些請求(權限系統未完成)
## 工作模式
### 本地模式(常規模式)
此時Router運行在本機,監聽localhost
App和Account連接本機的localhost
所有服務在一臺機器上提供
### 遠程帳號模式
服務提供商將Router和App架在服務器上
用戶在本地運行Account,連接服務提供商的服務器
此時:服務提供商提供完整的機器人后端服務,用戶負責構建前端
>[info] 服務商需要自行實現用戶鑒權,之后調用Router的RegisterAccount獲取Token,將Token轉發給用戶端
### 遠程應用模式
服務提供商將App架在服務器上
用戶在本地運行Account和Router,連接服務提供商的服務器
該模式使用反向連接功能,即對于App而言,Router是傳輸層的客戶端,App則是傳輸層的服務端
>[warning] 反向連接功能暫未開發