127 lines
2.9 KiB
Markdown
127 lines
2.9 KiB
Markdown
|
|
# 直播系统 Java 后端
|
|||
|
|
|
|||
|
|
基于 Spring Boot 3.2 + JPA + H2/MySQL 的直播系统后端服务。
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- Java 17
|
|||
|
|
- Spring Boot 3.2
|
|||
|
|
- Spring Data JPA
|
|||
|
|
- H2 Database (开发) / MySQL (生产)
|
|||
|
|
- Lombok
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 使用 IDEA 打开项目
|
|||
|
|
|
|||
|
|
1. 打开 IntelliJ IDEA
|
|||
|
|
2. 选择 `File` -> `Open`
|
|||
|
|
3. 选择 `java-backend` 文件夹
|
|||
|
|
4. 等待 Maven 依赖下载完成
|
|||
|
|
|
|||
|
|
### 2. 运行项目
|
|||
|
|
|
|||
|
|
方式一:直接运行
|
|||
|
|
- 找到 `LivestreamingApplication.java`
|
|||
|
|
- 右键点击 -> `Run 'LivestreamingApplication'`
|
|||
|
|
|
|||
|
|
方式二:Maven 命令
|
|||
|
|
```bash
|
|||
|
|
cd java-backend
|
|||
|
|
mvn spring-boot:run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 访问服务
|
|||
|
|
|
|||
|
|
- API 地址: http://localhost:3001/api
|
|||
|
|
- H2 控制台: http://localhost:3001/h2-console
|
|||
|
|
- JDBC URL: `jdbc:h2:file:./data/livestream`
|
|||
|
|
- 用户名: `sa`
|
|||
|
|
- 密码: (空)
|
|||
|
|
|
|||
|
|
## API 接口
|
|||
|
|
|
|||
|
|
### 直播间接口
|
|||
|
|
|
|||
|
|
| 方法 | 路径 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| GET | /api/rooms | 获取所有直播间 |
|
|||
|
|
| GET | /api/rooms/{id} | 获取单个直播间 |
|
|||
|
|
| POST | /api/rooms | 创建直播间 |
|
|||
|
|
| DELETE | /api/rooms/{id} | 删除直播间 |
|
|||
|
|
|
|||
|
|
### 创建直播间请求示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
POST /api/rooms
|
|||
|
|
{
|
|||
|
|
"title": "我的直播间",
|
|||
|
|
"streamerName": "主播名称"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 响应示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"data": {
|
|||
|
|
"id": "uuid",
|
|||
|
|
"title": "我的直播间",
|
|||
|
|
"streamerName": "主播名称",
|
|||
|
|
"streamKey": "uuid",
|
|||
|
|
"isLive": false,
|
|||
|
|
"viewerCount": 0,
|
|||
|
|
"streamUrls": {
|
|||
|
|
"rtmp": "rtmp://localhost:1935/live/uuid",
|
|||
|
|
"flv": "http://localhost:8080/live/uuid.flv",
|
|||
|
|
"hls": "http://localhost:8080/live/uuid/index.m3u8"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 切换到 MySQL
|
|||
|
|
|
|||
|
|
1. 安装 MySQL 并创建数据库:
|
|||
|
|
```sql
|
|||
|
|
CREATE DATABASE livestream CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 修改 `application.yml`:
|
|||
|
|
```yaml
|
|||
|
|
spring:
|
|||
|
|
datasource:
|
|||
|
|
url: jdbc:mysql://localhost:3306/livestream?useSSL=false&serverTimezone=Asia/Shanghai
|
|||
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|||
|
|
username: root
|
|||
|
|
password: your_password
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
java-backend/
|
|||
|
|
├── src/main/java/com/example/livestreaming/
|
|||
|
|
│ ├── LivestreamingApplication.java # 启动类
|
|||
|
|
│ ├── config/ # 配置类
|
|||
|
|
│ ├── controller/ # 控制器
|
|||
|
|
│ ├── dto/ # 数据传输对象
|
|||
|
|
│ ├── entity/ # 实体类
|
|||
|
|
│ ├── exception/ # 异常处理
|
|||
|
|
│ ├── repository/ # 数据访问层
|
|||
|
|
│ └── service/ # 业务逻辑层
|
|||
|
|
├── src/main/resources/
|
|||
|
|
│ └── application.yml # 配置文件
|
|||
|
|
└── pom.xml # Maven 配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Android App 配置
|
|||
|
|
|
|||
|
|
确保 Android App 的 API 地址指向此服务:
|
|||
|
|
|
|||
|
|
```kotlin
|
|||
|
|
// build.gradle.kts
|
|||
|
|
buildConfigField("String", "API_BASE_URL_DEVICE", "\"http://你的电脑IP:3001/api/\"")
|
|||
|
|
```
|