SSE和Websocket的区别
¶前言 SSE(Server-Sent Events)和 WebSocket 都是用于实现服务器与客户端之间实时双向通信的技术。虽然它们都可以用于实时更新数据,但它们在实现方式、特点和适用场景上有着明显的区别。 ¶Server-Sent Events(SSE) SSE 是基于传统的 HTTP 协议实现的,采用了长轮询(long-polling)机制。客户端通过向服务器发送一个 HTTP 请求,服务器保持连接打开并周期性地向客户端发送数据。 SSE 通过 EventSource 对象来实现,在客户端可以通过监听 onmessage 事件来接收服务器端发送的数据。 ¶Websocket WebSocket 是基于独立的 TCP 连接实现的,使用自定义的协议。客户端和服务器之间可以建立持久的全双工通信的连接,可以双向发送和接收数据。 WebSocket 协议是基于帧的,可以通过发送不同类型的帧进行通信。 ¶SSE 和 WebSocket的差异及适用场景 ¶SSE SSE 适用于服务器向客户端单向发送实时更新的数据,适合实时事件推送场景。SSE 使用的是标准的 HTTP...
JDK【免安装】各种版本下载及配置
¶jdk各种版本下载地址 jdk版本合集 ¶下载及配置 ¶下载并解压 这里我选择Windows系统22版本 下载解压后的目录结构 ¶配置环境变量 ¶打开配置环境变量窗口 ¶添加环境变量 这里的变量名设置JAVA22_HOEM是为了方便切换多版本,配置PATH就可以根据需要配置其他版本 确定后进入Path 这里我使用默认版本,我的默认版本为JDK13 ¶测试 win+r 输入cmd 命令行输入java -version 查看JDK版本 可以看到版本,jdk配置成功
Hexo-Butterfly主题添加自定义css和js文件
¶创建文件 为了实现魔改和美化网站,添加自定义文件是一个不可或缺的步骤。接下来,我将详细说明如何创建和引入 CSS 和 JS 文件,其他类型的文件处理方式类似。 首先,我们需要定位到博客的根目录下,找到 source 文件夹。虽然主题的 source 文件夹也可以进行操作,但不推荐这样做。接下来,请按照以下步骤进行: 创建文件夹: 在 source 文件夹内,我们可以创建 js 和 css 文件夹,以便于管理和存放我们的自定义样式和脚本。此外,你还可以根据需要创建其他文件夹,比如: img 文件夹:用于存放图片资源。 font 文件夹:用于存放字体文件。 添加自定义 CSS 和 JS 文件: 在 css 文件夹中创建自定义的 CSS 文件,例如 custom.css;在 js 文件夹中创建自定义的 JS 文件,例如 custom.js。这些文件将用于覆盖或增强现有的样式和功能。 引入 CSS 和 JS 文件: 要使浏览器加载我们新创建的 CSS 和 JS 文件,需要在主题的模板文件中进行引入。一般来说,这些引入代码应该放在 <head> 标签内(对于...
如何为 Hexo 博客配置 Nginx 泛域名 SSL 证书(含自动续期)
本文适用场景:通过 Nginx 部署 Hexo 博客,并实现 *.example.com 型泛域名 HTTPS 支持,通过设置泛域名证书,通过Nginx子域名部署其他服务都可以使用。 ¶前置准备 域名要求 已注册主域名(如 example.com) 完成域名解析(将 *.example.com A 记录指向服务器 IP) 服务器环境 # 检查 Nginx 版本(需 ≥ 1.15.9)nginx -v# 安装 Certbot(以 Ubuntu 为例)sudo apt update && sudo apt install certbot python3-certbot-nginx ¶申请泛域名 SSL 证书 ¶通过 Certbot 申请证书 sudo certbot certonly \ --manual \ # 手动模式 --preferred-challenges=dns \ # DNS 验证 --server https://acme-v02.api.letsencrypt.org/directory \ -d...
使用nginx+zerotier访问nas服务
¶前言 我们通过购买国内云服务器自建zerotier根服务器后,能不能使云服务器和家里的nas加入到我们的虚拟内网使其联通,在外面就可以访问我们的nas?答案是可以的。下面就是具体的实现步骤。 ¶实现步骤 ¶云服务器配置域名 1.购买一个便宜的域名 2.将域名解析到我们的云服务器 3.为需要代理的服务配置子域名 如果域名解析到国内服务器需要备案才能提供服务 ¶云服务器安装zerotier客户端 参考linux部署 ¶nas安装zerotier客户端 nas安装可以参考linux部署,也可以参考使用的nas系统的教程进行安装,记得需要将Planet文件替换成zerotier根服务器的,加入网络就可以获取nas在虚拟局域网的ip地址,就可以去服务器上通过Nginx代理进行访问。 ¶云服务器安装Nginx 在我们部署zerotier根服务器的云服务器上安装Nginx。 Ubuntu/Debian 系统: # 更新源sudo apt update# 安装 Nginxsudo apt install nginx -y# 管理服务sudo systemctl start...
自建zerotier根服务器
¶ZeroTier 介绍 ZeroTier 是一款强大的 P2P 工具,它能让你在互联网上搭建属于自己的虚拟局域网。通过它,你可以轻松实现远程访问家中设备的需求 - 比如在公司用手机直接访问家里的 NAS。最重要的是,设备之间是点对点直连的,无需经过中转服务器,既保证了速度,又提升了安全性。 它的工作原理是这样的:通过 ZeroTier One 客户端,在不同设备(如笔记本、手机、服务器等)之间建立 P2P 连接,即使这些设备都在 NAT 后面也没问题。它使用了 STUN 等技术,可以穿透大多数类型的 NAT,实现设备间的直接通信。如果实在无法直连,才会通过中转服务器进行通信。 简单来说,ZeroTier 就像是一个跨越互联网的"虚拟交换机",让分布在世界各地的设备,都能像在同一个局域网内一样方便地相互访问。和 Tailscale 类似,Zerotier 同样也可以实现网络控制器以及根服务器的自部署,只不过以前我们只能自建卫星服务器(Moon 服务器)以及网络控制器,而现在则可以实现自部署根服务器(行星服务器),这样你完全不需要注册官方的 Zerotier...
hexo-Butterfly添加数学公式插件功能
¶前言 Butterfly主题支持Mathjax和KaTex两种数学公式渲染引擎,本文选择KaTex插件,因为 KaTeX 更快更轻量,因此没有 MathJax 的功能多(比如右键菜单)。 ¶在主题配置文件_config.Butterfly.yml找到math配置 选择KaTex #关于 per_page# 如果设置为 true,将在每个页面加载 mathjax/katex 脚本# 如果设置为 false,将根据你的设置加载 mathjax/katex 脚本(在页面的 front-matter 中添加 'mathjax: true' 或者 'katex: true')math: # 选择:mathjax, katex # 如果不需要数学公式,保持为空 use: katex per_page: false hide_scrollbar: false mathjax: # 启用上下文菜单 enableMenu: true # 选择:all / ams / none,这控制是否对公式编号以及如何编号 ...
hexo-Butterfly添加本地搜索功能
¶博客根目录安装插件 npm install hexo-generator-search --save ¶配置插件 ¶在hexo配置文件_config.yml文件添加如下配置 search: path: search.xml field: post format: html limit: 10000 ¶在主题配置文件_config.Butterfly.yml文件找到search配置 search: # 选择:algolia_search / local_search / docsearch # 如果不需要搜索功能,保持为空 use: local_search placeholder: # Algolia 搜索 algolia_search: # 每页搜索结果数量 hitsPerPage: 6 # 本地搜索 local_search: # 页面加载时预加载搜索数据 preload: false # 每篇文章显示的顶部 n 个搜索结果,设置为 -1 显示所有结果 top_n_per_article: 1 # 将...
hexo多端同步工作-gitee版
由于github速度不理想,使用gitee可以大幅度提供效率 ¶新建gitee仓库并切换默认分支为hexo ¶新建仓库 ¶切换新建hexo分支之后设置hexo为默认分支 设置默认分支 ¶将新建好的分支克隆到本地 git clone 链接地址 接下来在克隆到本地的空文件夹中(文件名可自定义),把除了.git 文件夹外的所有文件都删掉 把之前我们写的博客源文件全部复制过来,除了 .deploy_git。这里应该说一句,复制过来的源文件应该有一个 .gitignore,用来忽略一些不需要的文件,如果没有的话,自己新建一个,在里面写上如下,表示这些类型文件不需要git: .DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/ 注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的 .git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。 然后上传 git add .git commit –m...
使用docker部署本地一言服务
¶简介 简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。 ¶1.部署 一言官方提供了各种部署方式,自己选一个,这里使用 Docker 部署 创建数据目录 cd ~#创建hitokoto目录mkdir -p hitokoto#进入hitokoto目录cd hitokoto 创建一言配置文件 vim config.yml **填写配置信息 ** 下面自己本次配置信息 name: 'hitokoto' # 服务名称,例如:hitokotourl: 'https://v1.hitokoto.cn' # 服务地址,例如:https://v1.hitokoto.cnapi_name: 'demo_api_name' # 服务标识,取个好区分的标识吧,例如:cd-01-demoserver: # 配置 HTTP 服务的信息 host: hitokoto_api # 监听的地址 ...