52
README.md
52
README.md
@@ -1,27 +1,43 @@
|
|||||||
# NBA赛事共享在线观看平台
|
# NBA赛事共享在线观看平台
|
||||||
|
|
||||||
## 项目概述
|
## 项目简介
|
||||||
一个基于SpringBoot+Vue3的NBA赛事实时直播平台,通过腾讯体育接口获取赛事数据,实现赛程展示、直播观看、数据持久化等功能。采用前后端分离架构,支持多用户并发访问。
|
|
||||||
|
本项目是一个基于 NBA 赛事的共享在线观看平台,支持实时展示赛程、赛事直播播放等功能。用户可以便捷地浏览最新赛程信息,并使用内嵌播放器观看赛事直播。平台通过整合腾讯体育资源,自动化采集与维护直播数据,实现赛事数据的高效管理与分享。
|
||||||
|
|
||||||
## 技术栈
|
## 技术栈
|
||||||
|
|
||||||
### 后端技术
|
### 后端技术
|
||||||
- **核心框架**: Spring Boot 3.x
|
- **Spring Boot**:构建高性能的后端服务。
|
||||||
- **数据存储**:
|
- **MyBatis**:简化数据库操作,灵活执行 SQL。
|
||||||
- MySQL (赛事数据持久化)
|
- **MySQL**:存储赛程、直播间等核心数据。
|
||||||
- Redis (缓存腾讯体育Cookie和热点数据)
|
- **Redis**:缓存腾讯体育 Cookie 及直播数据,提升请求效率。
|
||||||
- **数据访问**: MyBatis + MyBatis Dynamic SQL
|
- **Scheduled Task**:定时任务机制,周期性同步直播信息。
|
||||||
- **任务调度**: Spring Scheduler
|
|
||||||
- **其他**:
|
|
||||||
- WebFlux(接口调用)
|
|
||||||
- JWT (鉴权预留)
|
|
||||||
|
|
||||||
### 前端技术
|
### 前端技术
|
||||||
- **核心框架**: Vue 3 + Composition API
|
- **Vue 3**:构建响应式单页应用。
|
||||||
- **状态管理**: Pinia
|
- **Pinia**:集中式状态管理,存储赛程相关数据。
|
||||||
- **路由管理**: Vue Router 4
|
- **Vue Router**:实现页面间路由导航。
|
||||||
- **网络请求**: Axios
|
- **Axios**:与后端进行 HTTP 通信。
|
||||||
- **视频播放**: DPlayer
|
- **DPlayer**:集成播放器,用于播放赛事直播流。
|
||||||
- **UI组件**: Element Plus (可选)
|
|
||||||
|
|
||||||
## 系统架构
|
## 核心功能实现
|
||||||
|
|
||||||
|
- **Cookie自动更新与存储**:后端首次手动配置腾讯体育 Cookie 并保存至 Redis,通过定时任务定期刷新 Cookie,保证接口调用的稳定性。
|
||||||
|
- **直播数据采集**:根据数据库中的赛程 ID,携带 Cookie 向腾讯体育接口发起请求,抓取对应的直播间信息,并定期存储至直播间信息表。
|
||||||
|
- **前端展示与播放**:
|
||||||
|
- 使用 Axios 获取后端赛程数据,展示赛程信息。
|
||||||
|
- 用户点击感兴趣的赛程后,前端将相关 ID 保存到 Pinia 中,用于后续状态追踪与页面展示。
|
||||||
|
- 基于 DPlayer 实现直播流的嵌入播放体验。
|
||||||
|
|
||||||
|
## 项目亮点
|
||||||
|
|
||||||
|
- 实现与第三方平台(腾讯体育)无官方 API 接口的半自动数据采集与更新。
|
||||||
|
- 利用 Redis 缓存与定时刷新机制,提升系统稳定性与数据实时性。
|
||||||
|
- 前后端分离架构,增强了系统的可维护性和拓展性。
|
||||||
|
- 播放器集成体验良好,用户可便捷观看赛事直播。
|
||||||
|
|
||||||
|
## 后续优化方向
|
||||||
|
|
||||||
|
- 接入用户评论与弹幕系统,提升用户互动性。
|
||||||
|
- 增加赛事订阅与提醒功能,优化用户体验。
|
||||||
|
- 提升异常处理与容错机制,增强系统健壮性。
|
||||||
|
|||||||
Reference in New Issue
Block a user