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/\"")
|
||
```
|