如何在區域網內開一家電影院

  • 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即可。