• 如何在局域网内开一家电影院


    在局域网内通过搭建服务集群,让你的设备轻轻松松访问电脑中的视频,无需流量,不受网速干扰。本篇主要讲述如何自行搭建该服务。

    项目地址: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即可。

  • 相关阅读:
    Linux下使用ps命令来查看Oracle相关的进程
    虚继承、虚基类
    C++/C小知识点(2)
    C++中的运行中动态类型识别RTTI
    什么应该放在头文件?何为外连接?
    Placement new、operator new、new operator 完全释疑
    二叉搜索树
    Linux C编程学习资料,学习过程
    独立对象(非附属对象)大小
    编程珠玑第一章、第二章
  • 原文地址:https://www.cnblogs.com/LexMoon/p/mov.html
Copyright © 2020-2023  润新知