75 lines
1.5 KiB
Markdown
75 lines
1.5 KiB
Markdown
|
|
# NL-IM Vue 3 + TypeScript 前端项目
|
|||
|
|
|
|||
|
|
基于Vue 3 + TypeScript构建的即时通讯系统前端应用。
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- Vue 3.4 + TypeScript
|
|||
|
|
- Pinia (状态管理)
|
|||
|
|
- Vue Router 4
|
|||
|
|
- Axios (HTTP客户端)
|
|||
|
|
- Tailwind CSS 4
|
|||
|
|
- WebSocket (实时通信)
|
|||
|
|
- WebRTC (音视频通话)
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
nl-im-vue-ts/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── api/ # API接口层
|
|||
|
|
│ ├── components/ # 公共组件
|
|||
|
|
│ ├── composables/ # 组合式函数
|
|||
|
|
│ ├── stores/ # Pinia状态管理
|
|||
|
|
│ ├── types/ # TypeScript类型定义
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ ├── views/ # 页面组件
|
|||
|
|
│ └── router/ # 路由配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发
|
|||
|
|
|
|||
|
|
### 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动开发服务器
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
访问 http://localhost:3000
|
|||
|
|
|
|||
|
|
### 构建生产版本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 后端API
|
|||
|
|
|
|||
|
|
确保后端服务运行在 `http://localhost:12080`
|
|||
|
|
|
|||
|
|
WebSocket地址: `ws://localhost:12080/ws`
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
- ✅ 用户登录/注册
|
|||
|
|
- ✅ 联系人管理
|
|||
|
|
- ✅ 实时消息聊天
|
|||
|
|
- ✅ 多媒体消息(文本、图片、语音、视频、文件)
|
|||
|
|
- ✅ 语音录制和发送
|
|||
|
|
- ✅ 右键菜单(单例化)
|
|||
|
|
- ✅ WebRTC音视频通话(待完善)
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 需要后端服务运行在 `http://localhost:12080`
|
|||
|
|
2. 登录后Token会自动存储在localStorage
|
|||
|
|
3. WebSocket连接会自动建立和管理
|
|||
|
|
4. 所有API响应统一格式:`{code, message, result, type, interface_info}`
|
|||
|
|
|