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

2.6 KiB

后端接口 TODO 清单 - 消息发送模块

1. 发送文本消息

文件: MessageSendHelper.java, ConversationActivity.java 接口路径: POST /api/messages/send 请求参数:

{
  "conversationId": "string",
  "messageType": "text",
  "content": "string",
  "userId": "string"
}

返回数据:

{
  "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 请求参数:

{
  "conversationId": "string",
  "messageType": "image",
  "mediaUrl": "string",
  "thumbnailUrl": "string",
  "userId": "string"
}

返回数据:

{
  "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 请求参数:

{
  "conversationId": "string",
  "messageType": "voice",
  "mediaUrl": "string",
  "duration": "number",
  "userId": "string"
}

返回数据:

{
  "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: 发送失败

错误处理

  • 网络错误: 显示发送失败,允许重试
  • 文件上传失败: 显示上传失败,允许重新选择
  • 消息发送失败: 显示发送失败,允许重试