前端系列18集-权限,nginx成功,屏幕分辨率,vue3

news2024/11/20 6:29:07

vue3.0 使用原生websocket通信

// Websoket连接成功事件
    const websocketonopen = (res: any) => {
      console.log("WebSocket连接成功", res);
    };
    // Websoket接收消息事件
    const websocketonmessage = (res: any) => {
      console.log("数据", res);
    };
    // Websoket连接错误事件
    const websocketonerror = (res: any) => {
      console.log("连接错误", res);
    };
    // Websoket断开事件
    const websocketclose = (res: any) => {
      console.log("断开连接", res);
    };

    onMounted(() => {
      // 创建 websocket 的实例
      const wsurl = "ws://*****";
      socket = new WebSocket(wsurl);
      socket.onopen = websocketonopen;
      socket.onmessage = websocketonmessage;
      socket.onerror = websocketonerror;
      socket.onclose = websocketclose;
    });

    // 组件被销毁之前,清空 sock 对象
    onBeforeUnmount(() => {
      // 关闭连接
      websocketclose;

      // 销毁 websocket 实例对象
      socket = null;
    });

添加了sendWebSocketMessage函数,该函数用于向WebSocket服务器发送消息。您可以在需要发送消息的地方调用该函数,并将消息作为参数传递给它。函数会检查WebSocket连接是否已建立,并且连接状态为OPEN时才发送消息。

99096c164baca26c68de4a9cfc05207d.png
image.png

15396 Jps

7e3832cf5881981edf240af650c8a845.png
image.png

netstat -lnp|grep java

d83d56f2abc5a7fb4a46d3eb4bea9d17.png
image.png
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
 // axios中请求配置有baseURL选项,表示请求URL公共部分
 baseURL: process.env.VUE_APP_BASE_API
 // 超时
 timeout: 10000
})
3043b5c79e81d5b111ac8cf7fe83cdcf.png
image.png
83d5621f275f3b91d73e7b2c93b19c3f.png
image.png
/monitor/online/list
de787f52f35024ae8aacb2f7e837c9c9.png
image.png
public void refreshToken(loginUser loginUser)
{
 loginUser.setLoginTime(System.currentTimeMillis());
 loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
 String userKey = getTokenKey(loginUser.getToken());
 redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
}
public void refreshToken(LoginUser loginUser)
{
    loginUser.setLoginTime(System.currentTimeMillis());
    loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
    // 根据uuid将loginUser缓存
    String userKey = getTokenKey(loginUser.getToken());
    redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
}
@PreAuthorize("@ss.hasPermi('system:config:query')")
@GetMapping(value = "/{configId}")
public AjaxResult getInfo(@PathVariable Long configId)
{
 return AjaxResult.success(configService.selectConfigById(configId));
}
export default {
 install(Vue) {
  Vue.prototype.$tab = tab // 页签操作
  Vue.prototype.$auth = auth // 认证对象
  Vue.prototype.$cache = cache // 缓存对象
  Vue.prototype.$modal = modal // 模拟框对象
  Vue.prototype.$download = download // 下载文件
 }
}
VueComponent.prototype.__proto__ === Vue.prototype
30ee0424bb8aa621998d66462c253afe.png
image.png
ce0a182fb73cc3e1704117b0242357db.png
image.png
784ba8cee9fbf95cc5c66185c1f0fb59.png
image.png
847aa7f5f87d36b45f3ba5278d584605.png
image.png

Nginx 做为 HTTP 服务器,有以下几项基本特性:

  • 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.

  • 无缓存的反向代理加速,简单的负载均衡和容错.

  • FastCGI,简单的负载均衡和容错.

  • 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCGI 或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。

  • 支持 SSL 和 TLSSNI.

Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

Nginx 具有很高的稳定性。其它 HTTP 服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前 apache 一旦上到 200 个进程以上,web响应速度就明显非常缓慢了。而 Nginx 采取了分阶段资源分配技术,使得它的 CPU 与内存占用率非常低。Nginx 官方表示在保持 10,000 个无活动连接时,它只占 2.5M 内存,所以类似 DOS 这样的攻击对 Nginx 来说基本上是毫无用处的。就稳定性而言,Nginx 比 lighthttpd 更胜一筹。

Nginx 支持热部署。它的启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行升级。

Nginx 采用 master-slave 模型(主从模型,一种优化阻塞的模型),能够充分利用 SMP (对称多处理,一种并行处理技术)的优势,且能够减少工作进程在磁盘 I/O 的阻塞延迟。当采用 select()/poll() 调用时,还可以限制每个进程的连接数。

Nginx 代码质量非常高,代码很规范,手法成熟,模块扩展也很容易。特别值得一提的是强大的 Upstream 与 Filter 链。Upstream 为诸如 reverse proxy,与其他服务器通信模块的编写奠定了很好的基础。而 Filter 链最酷的部分就是各个 filter 不必等待前一个 filter 执行完毕。它可以把前一个 filter 的输出做为当前 filter 的输入,这有点像 Unix 的管线。这意味着,一个模块可以开始压缩从后端服务器发送过来的请求,且可以在模块接收完后端服务器的整个请求之前把压缩流转向客户端。

屏幕分辨率统计

//引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。

import * as echarts from 'echarts/core'
//引入柱状图图表,图表后缀都为 Chart
import {
    BarChart,
    LineChart,
    PieChart,
    MapChart,
    PictorialBarChart,
    RadarChart,
    ScatterChart,
    GaugeChart
} from 'echarts/charts'
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import {
    TitleComponent,
    TooltipComponent,
    GridComponent,
    PolarComponent,
    AriaComponent,
    ParallelComponent,
    LegendComponent,
    RadarComponent,
    ToolboxComponent,
    DataZoomComponent,
    VisualMapComponent,
    TimelineComponent,
    CalendarComponent,
    GraphicComponent
} from 'echarts/components'

//引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from 'echarts/renderers'
//标签自动布局,全局过渡动画等特性
import { LabelLayout, UniversalTransition } from 'echarts/features'

// 注册必须的组件
echarts.use([
    LegendComponent,
    TitleComponent,
    TooltipComponent,
    GridComponent,
    PolarComponent,
    AriaComponent,
    ParallelComponent,
    BarChart,
    LineChart,
    PieChart,
    MapChart,
    RadarChart,
    PictorialBarChart,
    RadarComponent,
    ToolboxComponent,
    DataZoomComponent,
    VisualMapComponent,
    TimelineComponent,
    CalendarComponent,
    GraphicComponent,
    ScatterChart,
    CanvasRenderer,
    LabelLayout,
    UniversalTransition,
    GaugeChart
])

npm install echarts --save
 
有淘宝镜像的可以选择  (安装速度快)
cnpm install echarts --save
  1. // 挂载到vue实例中

  2. // Vue.prototype.$echarts = echarts;//vue2的挂载方式

  3. app.config.globalProperties.$echarts = echarts;//vue3的挂载方式

dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。

现在支持这几种类型的 dataZoom 组件:

  • 内置型数据区域缩放组件(dataZoomInside):内置于坐标系中,使用户可以在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。

  • 滑动条型数据区域缩放组件(dataZoomSlider):有单独的滑动条,用户在滑动条上进行缩放或漫游。

  • 框选型数据区域缩放组件(dataZoomSelect):提供一个选框进行数据区域缩放。即 toolbox.feature.dataZoom,配置项在 toolbox 中。

✦ dataZoom 和 数轴的关系 ✦

dataZoom 主要是对 数轴(axis) 进行操作(控制数轴的显示范围,或称窗口(window))。

可以通过 dataZoom.xAxisIndex 或 dataZoom.yAxisIndex 或 dataZoom.radiusAxisIndex 或 dataZoom.angleAxisIndex 来指定 dataZoom 控制哪个或哪些数轴。

dataZoom 组件可 同时存在多个,起到共同控制的作用。如果多个 dataZoom 组件共同控制同一个数轴,他们会自动联动。

一个MyBatis的映射文件(Mapper),用于操作sys_role表的角色信息。下面是每个标签的功能说明:

  • resultMap: 定义查询结果映射,将数据库字段映射到Java对象的属性。

  • sql: 定义一个可重用的SQL片段,供其他语句引用。

  • select: 定义查询语句,用于查询角色列表、角色权限等信息。

  • insert: 定义插入语句,用于向sys_role表中插入角色信息。

  • update: 定义更新语句,用于更新sys_role表中的角色信息。

  • delete: 定义删除语句,用于删除角色信息。

  • <mapper>:映射文件的根节点,指定了命名空间为com.wxapp.system.mapper.SysOperLogMapper

  • <resultMap>:定义了结果映射SysOperLogResult,将查询结果映射到SysOperLog对象的各个属性上。

  • <sql>:定义了查询语句片段selectOperLogVo,该语句用于查询操作日志的基本信息。

  • <insert>:定义了插入操作日志的语句insertOperlog,通过传入的SysOperLog对象插入到数据库中。

  • <select>:定义了查询操作日志列表的语句selectOperLogList,根据条件查询操作日志,并将结果映射到SysOperLogResult

  • <delete>:定义了根据ID删除操作日志的语句deleteOperLogByIds,可以批量删除指定ID的操作日志。

  • <update>:定义了清空操作日志的语句cleanOperLog,用于清空sys_oper_log表中的数据。

netstat -ntpl

docker run -d --name nginxapp nginx

a82e0bbe0de9517025a2a4320883e957.png
image.png
# 启动一个容器
docker run -d --name nginxapp nginx
# 查看容器是否启动成功
docker container ls
# 在当前目录下创建目录 conf,我的当前目录是/root/nginx
mkdir conf 
# 拷贝容器内nginx默认配置文件到当前目录下
docker cp nginxapp:/etc/nginx/nginx.conf $PWD/conf
docker cp nginxapp:/etc/nginx/nginx.conf.d $PWD/conf
# 完成拷贝后,停止删除容器,重启一个容器关联配置文件
docker stop nginxapp # 停止容器
docker rm nginxapp # 删除容器
# 创建html目录 存放静态资源
mkdir html
# 创建logs目录 保存访问日志
mkdir logs
cd9c8a69bd8937e11ae2776c5ad2903e.png
image.png
docker run -d -p 8080:80  \
 --name nginxapp \
 -v /root/nginx/html:/usr/share/nginx/html \
 -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /root/nginx/conf/conf.d:/etc/nginx/conf.d \
 -v /root/nginx/logs:/var/log/nginx \
 nginx


docker run -d -p 8080:80 --name nginxapp -v /Users/jeskson/html:/usr/share/nginx/html -v /Users/jeskson/conf/nginx.conf:/etc/nginx/nginx.conf -v /Users/jeskson/conf/conf.d:/etc/nginx/conf.d -v /Users/jeskson/logs:/var/log/nginx nginx

5ed3c6
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
 server {
  listen        80;
  server_name  localhost;
  location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
  location /testApp/ { # 映射访问url,到静态资源文件下
   alias   /usr/share/nginx/html/testApp;
   index  index.html index.htm;
  }
 }
}

Nginx 的安装目录在 /etc/nginx//usr/local/nginx/

/etc/nginx

docker run -p 8080:80 -d -v /home/nginx/www/hello-vue:/usr/share/nginx/html nginx

将目录/home/nginx/www/hello-vue 映射到nginx容器目录 /usr/share/nginx/html

server {
    listen        80;
    server_name  localhost;
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
    location /testApp/ {
        alias /usr/share/nginx/html/testApp;
    }
}

-v D:/study/docker/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
-v D:/study/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
server {        
        listen       80; #监听的端口
        server_name  aabbcc.com; #域名
        
        
                location / {
                        root   /usr/local/nginx/html; 
                        index  xdclass.html;        
        }  
}    
server {
        listen       80;
        server_name  aabbccdd.com;
        
        
        location / {            
               root   html;
               index  xdclass.html index.htm;        
        }
}
docker run -d -p 8080:80 --name nginxapp -v /Users/jeskson/html:/usr/share/nginx/html -v /Users/jeskson/conf/nginx.conf:/etc/nginx/nginx.conf -v /Users/jeskson/conf/conf.d:/etc/nginx/conf.d -v /Users/jeskson/logs:/var/log/nginx nginx

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/WebGuideInterview

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【从零开始学习C++ | 第二十二篇】C++新增特性(下)

目录 前言&#xff1a; 类型推导&#xff1a; constexpr关键字&#xff1a; 初始化列表&#xff1a; 基于范围的for循环&#xff1a; 智能指针之unique ptr Lambda表达式&#xff1a; 总结&#xff1a; 前言&#xff1a; 本文我们将继续介绍 C 11 新增十大特性的剩余…

解决前端容器不能充满屏幕

解决前端容器不能充满屏幕 px、rpx、em、rem、vw、vh各种像素单位的区别 css3新单位vw、vh、vmin、vmax的使用详解 学习element-UI写管理系统的页面&#xff0c;发现当菜单栏都收缩起来&#xff0c;结果是这样的 红色框是容器里每个板块的布局&#xff0c;但是容器下面却有空白…

如何处理兼容性测试中的变更管理?

如何处理兼容性测试中的变更管理? 在进行软件测试的过程中&#xff0c;兼容性测试是&#xfeff;非常重要的一环。然而&#xff0c;在进行兼容性测试时&#xff0c;由于涉及到不同平台、不同设备的适配问题&#xff0c;可能会出现许多变更管理的情况。这时候&#xff0c;如果没…

阿里企业邮箱收费标准_企业邮箱费用明细表

阿里云企业邮箱收费标准&#xff08;免费版/标准/尊享/集团&#xff09;&#xff0c;2023阿里云企业邮箱收费标准&#xff0c;免费版企业邮箱0元&#xff0c;标准版企业邮箱540元一年&#xff08;原价600元一年&#xff09;&#xff0c;企业邮箱尊享版1400元一年&#xff0c;9折…

4-移动端适配-1

01-移动 Web 基础 谷歌模拟器 模拟移动设备&#xff0c;方便查看页面效果 屏幕分辨率 分类&#xff1a; 物理分辨率&#xff1a;硬件分辨率&#xff08;出厂设置&#xff09;逻辑分辨率&#xff1a;软件 / 驱动设置 结论&#xff1a;制作网页参考 逻辑分辨率 视口 作用&a…

微信小程序项目实例——2048小游戏

今日推荐&#x1f481;‍♂️ 第一次听廖俊涛的歌是他首次出现在明日之子舞台上的那首《谁》 到现在这首歌成了我网易云收藏的十几首歌中的一首&#xff0c;也是听的最多的一首 怎么形容呢&#x1f914;算不上惊艳&#xff0c;却百听不厌&#x1f442; &#x1f52e;&#x1…

直播美颜SDK的商业化应用:开发者需要注意的关键问题

直播美颜SDK是当前直播行业中十分热门的技术之一&#xff0c;它可以为直播平台提供高质量的美颜效果&#xff0c;提升直播用户的使用体验和观看体验。随着直播市场的不断扩大和竞争的加剧&#xff0c;越来越多的直播平台开始使用美颜SDK以提高自身的用户黏性和用户体验。那么&a…

二叉树OJ题:LeetCode--100.相同的树

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下LeetCode中第100道二叉树OJ题&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个 人…

脑机接口:运动想象简介

脑机接口&#xff1a;运动想象简介 0. 脑机接口1. 运动想象2. 信号处理2.1 信号采集2.2 信号预处理2.3 特征提取2.4 分类识别 3. EEG波段介绍4. 脑电图电极定位5. 总结 0. 脑机接口 脑机接口&#xff08;Brain-Computer Interface&#xff0c; BCI&#xff09;&#xff1a;它是…

MATLAB 之 可视化图形用户界面设计

这里写目录标题 一、可视化图形用户界面设计1. 图形用户界面设计窗口1.1 图形用户界面设计模板1.2 图形用户界面设计窗口 2. 可视化图形用户界面设计工具1.1 对象属性检查器2.2 菜单编辑器2.3 工具栏编辑器2.4 对齐对象工具2.5 对象浏览器2.6 Tab 键顺序编辑器 3. 可视化图形用…

途乐证券|股票XR是什么意思?买股票为什么赚不到钱?

股票市场上有时会出现一些股票在其名称前加上英文字母的情况&#xff0c;比如XD、XR等。那么股票XR是什么意思&#xff1f;买股票为什么赚不到钱&#xff1f;途乐证券为大家准备了相关内容&#xff0c;以供参考。 股票XR是什么意思&#xff1f; 股票名称中带有XR是表示股票在进…

yolov5-cls部署之onnx导出

本文旨在介绍说明yolov5自带的分类如何导出动态的batch的onnx。其中输出两种形式&#xff1a; 形式&#xff08;1&#xff09;&#xff1a;导出带softmax映射到概率的 形式&#xff08;2&#xff09;&#xff1a;导出不带softmax的&#xff0c;这个也是官方默认的方式 一、动…

连接服务器,再连接VSCode

一、 创建账号&#xff0c;查找公钥 通过命令窗口 a. 打开你的 git bash 窗口 b. 进入 .ssh 目录&#xff1a;cd ~/.ssh c. 找到 id_rsa.pub 文件&#xff1a;ls d. 查看公钥&#xff1a;cat id_rsa.pub 或者 vim id_rsa.pub 查看本机 ssh 公钥&#xff0c;生成公钥 二、用…

Sangfor华东天勇战队:mybatis-plus demo

基本依赖添加&#xff0c;表创建&#xff0c;启动类&#xff0c;测试类 引入依赖&#xff1a; <!-- mybatis-plus 依赖--> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version…

【vue2】封装文字过长自动省略部分并且鼠标悬浮显示全部

技术&#xff1a;Ant design vue1.7.8 UI框架、vue2.X 需求:实现文字过长自动省略部分&#xff0c;鼠标悬浮显示全部 效果图&#xff1a; 图一&#xff1a; 图二&#xff1a; 1.封装组件代码&#xff1a; src/components/Ellipsis/index.js 文件下代码 import Ellipsis f…

d2l_第七章学习_卷积神经网络

参考: d2l今日学习——卷积神经网络&#xff08;CNN&#xff09;https://blog.csdn.net/m0_61165991/article/details/124176077图像工程&#xff08;上册&#xff09;-图像处理傅里叶变换https://blog.csdn.net/qq_43369406/article/details/131350139 x.1 前储知识&#xff…

4-移动端适配-2

01-vw适配方案 vw和vh基本使用 vw和vh是相对单位&#xff0c;相对视口尺寸计算结果 vw&#xff1a;viewport width&#xff08;1vw 1/100视口宽度 &#xff09;vh&#xff1a;lviewport height ( 1vh 1/100视口高度 ) vw布局 vw单位的尺寸 px 单位数值 / ( 1/100 视口宽…

STM32:探索嵌入式开发的关键技术

在嵌入式系统开发领域&#xff0c;STMicroelectronics的STM32系列微控制器备受推崇。然而&#xff0c;对于初学者来说&#xff0c;全面掌握STM32并非易事。下面我们将探讨STM32的学习曲线&#xff0c;帮助您更好地理解其中的挑战与收获。 抽象层次的挑战&#xff1a;STM32是一…

光谱分析的统计学角度-1-统计学导论

统计分析以可见或不可见的形式存在于我们生活的各个方面&#xff0c;其可见的形式有数字化、图形化等分析方法&#xff0c;不可见的形式包括经验、常识和感觉。对于以实验数据为基础的光谱分析方法&#xff0c;统计分析是其理论分析和工程应用的基础&#xff0c;如何从统计学的…

网络安全能力成熟度模型介绍

一、概述 经过多年网络安全工作&#xff0c;一直缺乏网络安全的整体视角&#xff0c;网络安全的全貌到底是什么&#xff0c;一直挺迷惑的。目前网络安全的分类和厂家非常多&#xff0c;而且每年还会冒出来不少新的产品。但这些产品感觉还是像盲人摸象&#xff0c;只看到网络安…