126 lines
2.6 KiB
Markdown
126 lines
2.6 KiB
Markdown
|
|
# 后端接口 TODO 清单 - 消息发送模块
|
||
|
|
|
||
|
|
## 1. 发送文本消息
|
||
|
|
**文件**: `MessageSendHelper.java`, `ConversationActivity.java`
|
||
|
|
**接口路径**: `POST /api/messages/send`
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"conversationId": "string",
|
||
|
|
"messageType": "text",
|
||
|
|
"content": "string",
|
||
|
|
"userId": "string"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**返回数据**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"data": {
|
||
|
|
"messageId": "string",
|
||
|
|
"userId": "string",
|
||
|
|
"username": "string",
|
||
|
|
"avatarUrl": "string",
|
||
|
|
"messageType": "text",
|
||
|
|
"content": "string",
|
||
|
|
"timestamp": "number",
|
||
|
|
"status": "sent"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 2. 发送图片消息
|
||
|
|
**文件**: `MessageSendHelper.java`, `ConversationActivity.java`
|
||
|
|
**接口路径**: `POST /api/messages/send/image`
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"conversationId": "string",
|
||
|
|
"messageType": "image",
|
||
|
|
"mediaUrl": "string",
|
||
|
|
"thumbnailUrl": "string",
|
||
|
|
"userId": "string"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**返回数据**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"data": {
|
||
|
|
"messageId": "string",
|
||
|
|
"userId": "string",
|
||
|
|
"username": "string",
|
||
|
|
"avatarUrl": "string",
|
||
|
|
"messageType": "image",
|
||
|
|
"mediaUrl": "string",
|
||
|
|
"thumbnailUrl": "string",
|
||
|
|
"timestamp": "number",
|
||
|
|
"status": "sent"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 3. 发送语音消息
|
||
|
|
**文件**: `MessageSendHelper.java`, `ConversationActivity.java`
|
||
|
|
**接口路径**: `POST /api/messages/send/voice`
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"conversationId": "string",
|
||
|
|
"messageType": "voice",
|
||
|
|
"mediaUrl": "string",
|
||
|
|
"duration": "number",
|
||
|
|
"userId": "string"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**返回数据**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"data": {
|
||
|
|
"messageId": "string",
|
||
|
|
"userId": "string",
|
||
|
|
"username": "string",
|
||
|
|
"avatarUrl": "string",
|
||
|
|
"messageType": "voice",
|
||
|
|
"mediaUrl": "string",
|
||
|
|
"duration": "number",
|
||
|
|
"timestamp": "number",
|
||
|
|
"status": "sent"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 发送流程
|
||
|
|
|
||
|
|
### 文本消息
|
||
|
|
1. 用户输入文本
|
||
|
|
2. 点击发送按钮
|
||
|
|
3. 调用发送接口
|
||
|
|
4. 显示发送状态(发送中 -> 已发送 -> 已读)
|
||
|
|
|
||
|
|
### 图片消息
|
||
|
|
1. 用户选择图片
|
||
|
|
2. 上传图片到文件服务器(调用上传接口)
|
||
|
|
3. 获取图片URL
|
||
|
|
4. 调用发送图片消息接口
|
||
|
|
5. 显示发送状态
|
||
|
|
|
||
|
|
### 语音消息
|
||
|
|
1. 用户录制语音
|
||
|
|
2. 上传语音文件到文件服务器
|
||
|
|
3. 获取语音URL和时长
|
||
|
|
4. 调用发送语音消息接口
|
||
|
|
5. 显示发送状态
|
||
|
|
|
||
|
|
## 消息状态
|
||
|
|
- `sending`: 发送中
|
||
|
|
- `sent`: 已发送(服务器已接收)
|
||
|
|
- `read`: 已读(对方已读)
|
||
|
|
- `failed`: 发送失败
|
||
|
|
|
||
|
|
## 错误处理
|
||
|
|
- 网络错误: 显示发送失败,允许重试
|
||
|
|
- 文件上传失败: 显示上传失败,允许重新选择
|
||
|
|
- 消息发送失败: 显示发送失败,允许重试
|