如何在區域網內開一家電影院
- 2019 年 10 月 31 日
- 筆記
在區域網內通過搭建服務集群,讓你的設備輕輕鬆鬆訪問電腦中的影片,無需流量,不受網速干擾。本篇主要講述如何自行搭建該服務。
項目地址:https://github.com/CasterWx/videoCloud
最近在補生活大爆炸,從網盤上下載了全季的影片,每天晚上都會在電腦上看幾集再去睡覺。
因為影片資源太過龐大,所以我想在手機上看,就需要每次把影片傳到手機,看完之後刪掉再傳新的,如果是看網上的資源,網速的問題可能會長時間需要載入。
所以我準備給我的電腦搭建一個服務,可以在同一區域網下讓我的手機平板等都可以訪問我電腦的資源,這樣就不用擔心網速問題了,差不多類似於一個區域網的在線影院。
我可以把最後的應用包安裝到一台根本不需要任何性能的伺服器,只需要它有大量的硬碟空間,類似於淘寶上的玩客雲(硬碟還得自己提供,這就能賣200多?)。
最簡單的伺服器你可以直接用你報廢的手機,不要再拿廢手機去換不鏽鋼盆了,稍微改裝一下就可以變成一個Linux伺服器,為你區域網下其他設備來提供服務(怎麼做之後出教程)。
雖然說只是一個簡單的雲影院,但是它可以與區域網內其他影院進行聯動,你也部署多次,我還是準備用上一些高大上的框架,一邊學習一邊完善,殺雞就要用屠龍寶刀。
大概說一下技術選型。
Spring Boot (應用主體)
Spring Cloud Alibaba (服務發現,負載均衡,容錯等) MyBatis (數據)
Elasticsearch (搜索,正在學這個)
構建項目
項目環境分為Dev和Proc,分別是開發環境和線上環境,線上環境會限制連接數。
1 spring: 2 profiles: dev 3 --- 4 spring: 5 profiles: proc 6 server: 7 tomcat: 8 max-connections: 1000 9 max-threads: 200 10 max-http-post-size: 2MB
服務發現組件使用Nacos,區域網內每一個服務啟動時會註冊在Nacos中,Nacos是SpringCloudAlibaba提供的微服務組件,本項目中配置在yum配置中。
無需任何配置,startup.cmd -m standalone即可啟動。
訪問localhost:8848/nacos,用戶名密碼均為nacos,即可在服務列表中查看已啟動的本項目組件。
資料庫使用本地資料庫。
spring: datasource: url: jdbc:mysql://localhost:3306/user_center?serverTimezone=GMT hikari: username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver
資源訪問路徑
靜態樣式資源以及影片等路徑配置在WebMvcConfig中,addResourceLocations根據自己磁碟中文件路徑配置。
1 @Configuration 2 public class WebMvcConfig implements WebMvcConfigurer { 3 public void addResourceHandlers(ResourceHandlerRegistry registry){ 4 registry.addResourceHandler("/**").addResourceLocations("file:G:/bilibili/"); 5 WebMvcConfigurer.super.addResourceHandlers(registry); 6 } 7 }
資料庫
數據實例,localUrl是相對你在上一步Config中指定路徑下的。
type欄位決定了影片類型,在前端會有相應的分組。
在Test中有針對相應文件夾的批量導入方法,可以自行修改來導入本地影片。
前端介面
前端的影片播放插件選用DPlayer。
<link rel="stylesheet" href="DPlayer.min.css" /> <div id="dplayer"></div> <script src="DPlayer.min.js"></script> <script> const dp = new DPlayer({ container: document.getElementById('dplayer'), video: { url: 'demo.mp4', }, }); </script>
上述是mp4的通用播放方法,對於flv,需要指定video-type對flv,並導入flv.js進行解析。
健康檢查
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
使用actuator進行健康檢查。
使用
針對自己的情況完成了上述配置,就可以在區域網內正式使用該服務了。
啟動項目,發現一台服務。
然後訪問服務的地址,在yum中我們選擇了8081埠。
因為該服務主要面向移動端,所以這裡演示為手機效果。
繼續下拉,就可以到影片列表了。
mv_db中的mv_type決定了分類,也就是上圖中影片的分類,便於查看。
選擇影片後即可跳轉到相應播放介面,在區域網內體驗高速服務,不用擔心流量以及限速問題。
可以配合bilibili-spider批量將B站收藏夾影片文件下載到本地,在Test中導入。
區域網內的其他設備訪問時,需要使用服務的區域網ip,可以在cmd中使用ipconfig命令查看。
此時我在移動端只需要訪問192.168.43.145:8081即可。