zhibo/android-app/后端接口TODO清单-消息发送.md

126 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

# 后端接口 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`: 发送失败
## 错误处理
- 网络错误: 显示发送失败,允许重试
- 文件上传失败: 显示上传失败,允许重新选择
- 消息发送失败: 显示发送失败,允许重试