72 lines
1.5 KiB
Markdown
72 lines
1.5 KiB
Markdown
|
|
# 后端接口 TODO 清单 - 直播间弹幕模块
|
|||
|
|
|
|||
|
|
## 1. 发送直播间弹幕消息
|
|||
|
|
**文件**: `RoomDetailActivity.java`
|
|||
|
|
**接口路径**: `POST /api/rooms/{roomId}/messages`
|
|||
|
|
**请求参数**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"roomId": "string",
|
|||
|
|
"message": "string",
|
|||
|
|
"userId": "string"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"messageId": "string",
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatarUrl": "string",
|
|||
|
|
"message": "string",
|
|||
|
|
"timestamp": "number"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 2. 获取历史弹幕消息
|
|||
|
|
**文件**: `RoomDetailActivity.java`
|
|||
|
|
**接口路径**: `GET /api/rooms/{roomId}/messages`
|
|||
|
|
**请求参数**:
|
|||
|
|
- roomId: 房间ID(路径参数)
|
|||
|
|
- limit (可选): 获取最近N条消息,默认50
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"messageId": "string",
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatarUrl": "string",
|
|||
|
|
"message": "string",
|
|||
|
|
"timestamp": "number"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 3. 接收实时弹幕消息(WebSocket)
|
|||
|
|
**文件**: `RoomDetailActivity.java`
|
|||
|
|
**WebSocket 连接**: `ws://api.example.com/rooms/{roomId}/chat`
|
|||
|
|
**接收消息格式**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"type": "message",
|
|||
|
|
"data": {
|
|||
|
|
"messageId": "string",
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatarUrl": "string",
|
|||
|
|
"message": "string",
|
|||
|
|
"timestamp": "number"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
**备选方案**: 轮询获取新消息
|
|||
|
|
- 接口路径: `GET /api/rooms/{roomId}/messages?lastMessageId={lastId}`
|
|||
|
|
- 每3-5秒轮询一次,获取lastMessageId之后的新消息
|