1. 程式人生 > >如何在區域網內開一家電影院

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

在區域網內通過搭建服務叢集,讓你的裝置輕輕鬆鬆訪問電腦中的視訊,無需流量,不受網速干擾。本篇主要講述如何自行搭建該服務。

專案地址: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即可。