Files
quick-share/docs/01-整体架构与核心概念.md

29 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 01 - 整体架构与核心概念
## 目标与范围
- **目标**:在 VNC/远程桌面、内网隔离等场景下,提供基于浏览器的轻量数据传输能力,通过 WebSocket 实现多端实时同步。
- **范围**:文本、文件(分片)、图片预览、剪贴板读取/粘贴、在线用户列表、历史记录(本地)。
## 架构概览
```
发送端浏览器(Vue) <——WebSocket(STOMP/SockJS)——> 服务端(Spring Boot) <——> 接收端浏览器(Vue)
└—— 同一房间号(roomCode)隔离广播
```
## 核心概念
- **房间Room**:数据传输隔离空间,通过 **6 位数字** `roomCode` 标识。
- **会话Session**WebSocket 连接实例,通常以 `sessionId` 识别。
- **消息Message**:传输数据单元,支持 `TEXT/FILE/IMAGE/SYSTEM/CHUNK`
## 关键数据流
- **加入房间**:客户端连接成功后发送 `/app/room/{roomCode}/join` → 服务端更新房间用户 → 广播 `SYSTEM(USER_JOIN + userList)``/topic/room/{roomCode}`
- **发送消息**:客户端发送 `/app/room/{roomCode}/message`TEXT/FILE/IMAGE/SYSTEM→ 服务端补齐时间戳并广播到 `/topic/room/{roomCode}`
- **文件分片**:客户端发送 `/app/room/{roomCode}/file/chunk`CHUNK→ 服务端转发到 `/topic/room/{roomCode}/file/{fileId}`(或同房间通道内约定字段分发)。
## 非功能性要求NFR
- **可用性**:断线自动重连;重连后需重新 join。
- **性能**:大文本/大文件分片;限制单文件大小与分片大小;避免 UI 卡顿(增量渲染/节流)。
- **安全**默认不落库房间过期XSS 防护;可选 WSS/Origin 校验。