华为云服务器VoceChat在线聊天室部署
目录
- 1. 项目介绍
- 2. 准备条件
- 3. Docker环境部署
- 3.1 安装Docker(CentOS 7)
- 3.2 安装Docker Compose
- 3.3 Docker常用命令
- 4. 创建配置文件
- 4.1 创建工作目录
- 4.2 创建docker-compose.yml文件
- 4.3 保存配置文件
- 5. 部署运行
- 5.1 启动服务
- 5.2 检查服务状态
- 5.3 防火墙配置
- 6. 访问VoceChat
- 6.1 通过IP和端口访问
- 6.2 首次访问设置
- 7. 更新VoceChat
- 8. 绑定域名(可选)
- 8.1 安装Nginx Proxy Manager
- 8.2 配置反向代理
- 9. 网站集成
- 9.1 获取集成代码
- 9.2 将代码添加到网站
- 10. 移动端应用
- 10.1 iOS应用
- 10.2 Android应用
- 10.3 移动端配置
- 11. 常见问题与故障排除
- 11.1 无法访问VoceChat
- 11.2 数据备份
- 11.3 数据恢复
- 12. 高级配置
- 12.1 自定义VoceChat
- 12.2 HTTPS配置
- 13. 资源链接
- 14. 结语
1. 项目介绍
VoceChat是一款超轻型、基于Rust开发的聊天应用程序、API和SDK,优先考虑私人托管。其主要特点包括:
- 轻量级:占用资源少,部署简单
- 开源:代码完全开源,可自由修改
- 私人托管:保护隐私和数据安全
- 多平台支持:提供Web界面、移动应用等
- 集成能力:可以轻松集成到您的网站或应用程序中
- 机器人和社交渠道功能:扩展应用场景
VoceChat非常适合作为网站的客服系统,可以实现即时通讯,提高用户体验和客户服务质量。
2. 准备条件
在开始部署VoceChat之前,您需要准备以下条件:
-
服务器:一台运行Linux系统的服务器(本教程以CentOS 7为例)
- 可以使用云服务商提供的ESC,如Vultr等
- 建议配置:至少1核1G内存,10GB存储空间
-
域名(可选):如果您希望通过域名访问VoceChat,需要准备一个域名并完成DNS解析
-
Docker和Docker Compose:用于容器化部署VoceChat
-
项目资源:
- 官方网站:https://voce.chat/zh-CN
- GitHub仓库:https://github.com/Privoce/vocechat-web
3. Docker环境部署
VoceChat使用Docker进行部署,因此我们需要先在服务器上安装Docker和Docker Compose。
3.1 安装Docker(CentOS 7)
# 更新包管理器
sudo yum update -y# 安装必要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加Docker官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io# 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker# 验证Docker安装
sudo docker --version
3.2 安装Docker Compose
# 下载Docker Compose二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/v2.18.1/docker-compose- $(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose# 验证安装
docker-compose --version
3.3 Docker常用命令
# 查看当前运行的容器
docker ps# 查看所有容器(包括已停止的)
docker ps -a# 查看镜像
docker images# 停止容器
docker stop 容器ID或容器名# 启动容器
docker start 容器ID或容器名# 重启容器
docker restart 容器ID或容器名# 删除容器
docker rm 容器ID或容器名# 删除镜像
docker rmi 镜像ID或镜像名# 查看容器日志
docker logs 容器ID或容器名# 查看容器资源使用情况
docker stats
4. 创建配置文件
部署VoceChat需要创建一个docker-compose.yml
配置文件,该文件定义了VoceChat的运行环境和参数。
4.1 创建工作目录
# 创建工作目录并进入
mkdir ~/VoceChat && cd ~/VoceChat
4.2 创建docker-compose.yml文件
# 使用vim编辑器创建配置文件
vim docker-compose.yml
将以下内容复制到文件中(根据需要修改参数):
version: '3.3'
services:ywsjchat: # 服务名,可以自定义container_name: ywsjchat # 容器名,可以自定义ports:- '3322:3000' # 冒号左边的3322可以改成任意未使用过的端口environment:- PUID=0 # 用户ID,可以通过id命令查看当前用户的ID- PGID=0 # 组ID,可以通过id命令查看当前用户的组ID- TZ=Asia/Shanghai # 时区设置restart: always # 开启自启动volumes:- './data:/home/vocechat-server/data' # 数据持久化配置,冒号左侧可以更改本地的目录image: privoce/vocechat-server:latest # 镜像名称,不要修改
配置说明:
-
ywsjchat
:服务名称,可以根据需要自定义 -
container_name
:容器名称,可以根据需要自定义 -
ports
:端口映射,格式为"主机端口:容器端口",可以修改主机端口(冒号左边的数字) -
environment
:环境变量设置PUID
和PGID
:用户ID和组ID,可以使用id
命令查看TZ
:时区设置,默认为Asia/Shanghai
-
restart
:容器重启策略,always表示总是自动重启 -
volumes
:数据卷映射,用于数据持久化 -
image
:使用的Docker镜像
4.3 保存配置文件
在vim编辑器中,按Esc
键退出编辑模式,然后输入:wq
保存并退出。
5. 部署运行
完成配置文件创建后,我们可以启动VoceChat服务。
5.1 启动服务
# 在VoceChat目录下执行
docker-compose up -d
命令说明:
up
:创建并启动容器-d
:后台运行模式
5.2 检查服务状态
# 查看正在运行的容器
docker ps# 查看容器日志
docker logs ywsjchat
如果一切正常,您应该能看到VoceChat容器正在运行。
5.3 防火墙配置
如果您的服务器开启了防火墙,需要放行VoceChat使用的端口(本例中为3322):
# CentOS 7防火墙配置
sudo firewall-cmd --permanent --add-port=3322/tcp
sudo firewall-cmd --reload# 检查端口是否开放
sudo firewall-cmd --list-ports
6. 访问VoceChat
6.1 通过IP和端口访问
在部署完成后,您可以通过浏览器访问VoceChat:
http://服务器IP:3322
例如,如果您的服务器IP是123.456.789.10
,则访问地址为:http://123.456.789.10:3322
6.2 首次访问设置
首次访问VoceChat时,您需要进行以下设置:
- 创建管理员账户
- 设置服务器名称
- 配置基本参数(如是否允许注册等)
7. 更新VoceChat
当VoceChat发布新版本时,您可以按照以下步骤进行更新:
# 进入VoceChat目录
cd ~/VoceChat# 停止当前运行的容器
docker-compose down# 拉取最新的镜像
docker-compose pull# 重新启动容器
docker-compose up -d# 清理旧的未使用镜像
docker image prune -f
8. 绑定域名(可选)
如果您希望通过域名访问VoceChat,可以使用Nginx反向代理来实现。
8.1 安装Nginx Proxy Manager
Nginx Proxy Manager是一个简单易用的Nginx可视化管理工具,可以帮助您方便地配置反向代理。
关于Nginx Proxy Manager的详细部署教程,可以参考:
Nginx Proxy Manager部署指南
8.2 配置反向代理
在Nginx Proxy Manager中添加代理主机配置:
- 域名:您的VoceChat域名,如
vocechat.example.com
- 方案:http
- 转发主机:VoceChat服务器的IP
- 转发端口:VoceChat服务端口(本例中为3322)
- 开启SSL(推荐)
配置完成后,您可以通过域名访问VoceChat:https://vocechat.example.com
9. 网站集成
VoceChat可以集成到现有网站中,作为客服系统使用。
9.1 获取集成代码
登录VoceChat管理界面,进入设置页面,找到"网站集成"或"嵌入代码"选项,复制集成代码。
9.2 将代码添加到网站
将获取的代码添加到您网站的HTML中,通常放在</body>
标签之前。代码示例如下:
<script>(function(d, w, c) {w.VoceChat = {serverUrl: 'https://vocechat.example.com ',organization: 'Your Organization',position: 'right', // 可选:'left' 或 'right'locale: 'zh-CN', // 语言设置theme: 'light' // 主题设置,可选:'light' 或 'dark'};var s = d.createElement('script');s.type = 'text/javascript';s.async = true;s.src = 'https://vocechat.example.com/widget.js ';var x = d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);})(document, window);
</script>
集成后,您的网站右下角会出现一个聊天图标,用户可以点击打开聊天窗口。
10. 移动端应用
VoceChat提供移动端应用,方便管理员随时回复消息。
10.1 iOS应用
下载地址:https://apps.apple.com/app/vocechat/id1631779678
10.2 Android应用
下载地址:https://vocechat.s3.amazonaws.com/vocechat.android.apk
10.3 移动端配置
在移动应用中,您需要输入服务器地址(例如https://vocechat.example.com
)并登录您的账户。
11. 常见问题与故障排除
11.1 无法访问VoceChat
- 检查容器是否正常运行:
docker ps
- 查看容器日志:
docker logs ywsjchat
- 确认防火墙是否已放行端口
- 检查服务器安全组设置(如使用云服务器)
11.2 数据备份
VoceChat的数据存储在配置的数据卷中,本例中为~/VoceChat/data
目录。您可以定期备份此目录:
# 创建备份
tar -zcvf vocechat_backup_$(date +%Y%m%d).tar.gz -C ~/VoceChat data# 将备份文件移动到安全位置
mv vocechat_backup_*.tar.gz /path/to/backup/location
11.3 数据恢复
如需恢复数据,可以按以下步骤操作:
# 停止VoceChat容器
cd ~/VoceChat
docker-compose down# 备份当前数据(以防万一)
mv data data_old# 解压备份文件
tar -zxvf vocechat_backup_YYYYMMDD.tar.gz -C ~/VoceChat# 重新启动VoceChat
docker-compose up -d
12. 高级配置
12.1 自定义VoceChat
您可以通过环境变量自定义VoceChat的行为,在docker-compose.yml
文件的environment
部分添加相应配置:
environment:- PUID=0- PGID=0- TZ=Asia/Shanghai- VOCECHAT_SERVER_NAME=My Chat Server # 服务器名称- VOCECHAT_ENABLE_REGISTRATION=true # 是否允许注册- VOCECHAT_MAX_USERS=100 # 最大用户数# 更多配置...
12.2 HTTPS配置
如果您不使用Nginx反向代理,也可以直接为VoceChat配置HTTPS:
environment:# 其他配置...- VOCECHAT_ENABLE_TLS=true- VOCECHAT_TLS_CERT=/path/to/cert.pem- VOCECHAT_TLS_KEY=/path/to/key.pem
volumes:- './data:/home/vocechat-server/data'- '/path/to/cert.pem:/path/to/cert.pem'- '/path/to/key.pem:/path/to/key.pem'
13. 资源链接
- VoceChat官方网站:https://voce.chat/zh-CN
- GitHub仓库:https://github.com/Privoce/vocechat-web
- Docker Hub:https://hub.docker.com/r/privoce/vocechat-server
14. 结语
通过本教程,您已经成功部署了VoceChat聊天系统,并了解了如何进行基本配置、更新维护、域名绑定和网站集成等操作。VoceChat作为一款轻量级的开源聊天应用,非常适合作为网站的即时通讯和客服系统使用。
如果您在使用过程中遇到任何问题,可以查阅官方文档或在GitHub仓库提交Issue。希望本指南对您有所帮助!
相关文章:
华为云服务器VoceChat在线聊天室部署
目录 1. 项目介绍2. 准备条件3. Docker环境部署3.1 安装Docker(CentOS 7)3.2 安装Docker Compose3.3 Docker常用命令 4. 创建配置文件4.1 创建工作目录4.2 创建docker-compose.yml文件4.3 保存配置文件 5. 部署运行5.1 启动服务5.2 检查服务状态5.3 防火…...
ERP系统(技术面)知识积累
本文为本人在准备某公司信息技术类岗位的面试时所作的笔记,该公司有技术面,此岗位入职后负责的是ERP系统的运行和维护,所以可能会问ERP系统相关的问题。故我写此文以做准备。 ERP简介 ERP,全称Enterprise Resource Planning&…...
Python学习笔记(第三部分)
接续 Python.md 文件的第三部分 类 类的创建的基本使用 创建一个类 class Dog(): 文档字符串:这是一次模拟小狗的简单尝试 def __init__(self,name,age):self.name nameself.age agedef sit(self):print(self.name.title() " is now sitting.")def ro…...
【浅尝Java】Java简介第一个Java程序(含JDK、JRE与JVM关系、javcdoc的使用)
🍞自我激励:每天努力一点点,技术变化看得见 文章目录 Java语言概述Java是什么Java语言的重要性Java语言发展简史Java语言特性 第一个Java程序main方法示例运行Java程序JDK、JRE、JVM之间的关系注释基本规则注释规范 标识符关键字 Java语言概述…...
【FreeRTOS-列表和列表项】
参照正点原子以及以下gitee笔记整理本博客,并将实验结果附在文末。 https://gitee.com/xrbin/FreeRTOS_learning/tree/master 一、列表和列表项的简介(熟悉) 1、什么是列表 答:列表是FreeRTOS中的一个数据结构,概念上和链表有点类似&#…...
22.2Linux的I2C驱动实验(编程)_csdn
我尽量讲的更详细,为了关注我的粉丝!!! 这里我们用到的是stm32mp157的板子,所以我们看一下I2C用到的引脚。 1、硬件原理图分析 可以看到在这块板子上面用的SDA和SCL总线是PA11,PA12。所以要修改设备树和镜像文件&…...
socket-IO复用技术
五个I/O模型 1、阻塞I/O 2、非阻塞I/O 3、I/O复用(select和poll) 4、信号驱动I/O 5、异步I/O I/O复用 是一种在单线程或单进程环境下,同时监听多个 I/O 事件的技术。它允许程序高效地处理多个输入输出流(如网络套接字、文件描…...
上位机知识篇---二进制操作
文章目录 前言接收数据示例:0xAA 0x12 0x34 0x55合并高/低字节数据RGB565颜色值:0xF800(红色)Python中负数右移接收帧:01 03 02 12 34 CRC前言 本文简单对单片机、上位机中的映射(Mapping)和位移操作符(Bit Shifting)等相关知识进行了简单介绍. 一、单片机与上位机中…...
openEuler 22.03 安装 Mysql 5.7,TAR离线安装
目录 一、检查系统是否安装其他版本Mariadb数据库二、环境检查2.1 必要环境检查2.2 在线安装(有网络)2.3 离线安装(无网络) 二、下载Mysql2.1 在线下载2.2 离线下载 三、安装Mysql四、配置Mysql五、开放防火墙端口六、数据备份七、…...
《排序算法总结》
引言: 编程学到现在,我们已经接触了很多种排序算法,这篇文章我就对常见的几种排序算法进行一个小结。 一: 排序算法分类: 二: 插入排序: 直接插入排序: 1. 概念: 直…...
【Java学习笔记】递归
递归(recursion) 思想:把一个复杂的问题拆分成一个简单问题和子问题,子问题又是更小规模的复杂问题,循环往复 本质:栈的使用 递归的注意事项 (1)需要有递归出口,否者就…...
体系学习1:C语言与指针1——预定义、进制打印、传参为数组
1、不对一段代码进行编译 #if 0 statement #endif2、输出地址 int d[3]{1,2,3}; printf("%p",(void*)d);//p期待的是void*类型的数据3、不同进制的打印 int data 1200; char hed[9];//为\0预留位置!!! sprintf(hed,"%08X&…...
使用Java正则表达式进行分组与匹配文本提取
在Java开发中,正则表达式(Regex)是处理字符串的强大工具,广泛应用于数据验证、文本解析和格式转换等场景。通过正则表达式的分组功能,开发者可以精确地提取匹配模式的子部分,而不仅仅是整个匹配内容。Java的…...
RAGFlow上传3M是excel表格到知识库,提示上传的文件总大小过大
环境: Ragflowv0.17.2 问题描述: RAGFlow上传3M是excel表格到知识库,提示上传的文件总大小过大 解决方案: 定位问题: 1.查询Nginx 日志 Nginx 日志 检查 Nginx 配置中日志路径是否正确,确保日志文件有…...
2025年4月文章一览
2025年4月编程人总共更新了30篇文章: 1.2025年3月文章一览 2.《Operating System Concepts》阅读笔记:p528-p544 3.《Operating System Concepts》阅读笔记:p545-p551 4.《Operating System Concepts》阅读笔记:p552-p579 5.…...
2025大模型微调视频课程全套(附下载)
2025大模型微调视频课程全套,共10课。主要内容如下: 1、大模型的发展 2、Transformer & LLMs 3、大模型微调预览&Lora微调&Alpaca模型微调 4、Alpaca&AdaLoRA&QLoRA模型微调 5、Efficient Fine-tuning&Efficient Inference&…...
【Python Web开发】04-Cookie和Session
文章目录 1. Cookie1.1 定义1.2 工作原理1.3 用途1.4 优缺点 2. Session2.1 定义2.2 工作原理2.3 用途2.4 优缺点 3. Cookie 与 Session 的关系4. 安全性考量5. Python 中使用 Cookie 和 Session 在 HTTP 协议里,Cookie 和 Session 是用于管理客户端与服务器之间会话…...
从股指到期指,哪些因素影响基差?
当我们谈论股指期货(简称“期指”)与股票现货指数(简称“股指”)的基差时,其实是在探讨期货价格与现货价格之间的“差价”。这个差价受多种因素影响,时而扩大,时而缩小,甚至可能“翻…...
n8n 中文系列教程_15. 【工具篇】n8n中文版与汉化指南:从原理到实践
n8n 作为一款强大的开源自动化工具,目前尚未推出官方中文版,但社区提供了汉化方案。不过,对于技术用户,我们更推荐使用英文原版,以便更好地查阅文档和解决问题。如果你仍希望尝试汉化,本文将详细介绍如何通…...
3D版同步帧游戏
以下是实现一个3D版同步帧游戏的详细步骤与完整代码示例。我们将以第一人称射击游戏(FPS)为原型,重点讲解3D空间中的同步机制优化。 项目升级:3D版核心改动 1. 3D坐标系与消息结构 // common/messages.go type Vector3 struct {X float32 `json:"x"`Y float32 `…...
C语言中数字转化为字符串的方法
C语言中数字转化为字符串的方法 1. 使用 sprintf 函数 这是 stdio.h 头文件中的标准库函数 ,功能类似于 printf ,但不是输出到控制台,而是将格式化后的内容输出到字符数组(字符串)中。 示例代码: c #inc…...
使用MGeo模型高精度实现文本中地址识别
一、功能与安装 1、模型地址 模型是阿里开发的门址高精度识别模型。 https://modelscope.cn/models/iic/mgeo_geographic_elements_tagging_chinese_base/summary 注意:不能自己安装包,没法解决依赖问题,直接按照官方要求安装下面的包&am…...
OpenGL-ES 学习(15) ----纹理
目录 纹理简介纹理映射纹理映射流程示例代码:纹理的环绕和过滤方式纹理的过滤方式 纹理简介 现实生活中,纹理(Texture) 类似于游戏中皮肤的概念,最通常的作用是装饰 3D 物体,它像贴纸一样贴在物体的表面,丰富物体的表…...
类成员函数编译链接的过程
1.静态成员函数和普通成员函数 源文件编译成目标文件,静态成员函数和普通成员函数在目标文件代码段,函数添加进了符号表,地址是在代码段的相对地址,这个地址只是一个临时地址因为后面链接时还要合并代码段,函数地址还…...
PostgreSQL:pgAdmin 4 使用教程
pgAdmin 4 是一个用于管理和维护 PostgreSQL 数据库的强大工具。它提供了一个图形化界面,使用户能够轻松地连接到数据库、创建表、运行 SQL 语句以及执行其他数据库管理任务。 安装和使用 安装 pgAdmin 4 安装 pgAdmin 4 非常简单。下载并运行安装程序࿰…...
*(解引用运算符)与 ++(自增运算符)的优先级
在 C 和 C 等编程语言里,*(解引用运算符)与 (自增运算符)的执行优先级高低,要依据 是前缀形式还是后缀形式来确定。下面为你详细分析: 1. 后缀 运算符 后缀 运算符的优先级比 *(…...
二叉搜索树中的搜索(递归解决)
700. 二叉搜索树中的搜索 - 力扣(LeetCode) 二叉搜索树(BST):以任意节点为根节点的数值大于其左子树所有节点的值,小于右子树所有节点的值。 查找二叉搜索树中的值,要利用节点之间的大小关系。…...
idea安装
1.卸载 2.安装 3.ssh...
在ASP.NET MVC中使用Repeater指南
虽然ASP.NET MVC框架本身不包含Web Forms中的Repeater控件,但您可以通过几种方式实现类似的功能。以下是几种在MVC中实现Repeater效果的方法: 1. 使用foreach循环 最简单的方法是直接在视图中使用Razor的foreach循环: csharp model IEnumer…...
【C语言常用字符串解析】
总结一下在 C 语言中用于字符串解析(特别是从文件中读取行并提取数据)的常用函数、 核心任务: 通常是从文件中读取一行文本(一个字符串),然后从这个字符串中提取出需要的数据(比如数字、单词等…...
基于深度学习农作物叶部病害实时检测系统研究(源码+定制+开发)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
『MCP』初体验
『MCP』初体验 介绍 MCP 其实就是 Function Calling 的一个统一接口协议,网上介绍会有很多,所以这里不就重复介绍,这里主要是想记录说明一下 MCP 使用体验,可以帮助新人入门一下 安装 VSCode 以及 MCP client VSCode 自行安装…...
前端面试宝典---webpack原理解析,并有简化版源码
前言 先看一下webpack打包后的bundle.js,前边的直接扫一眼就过,可以发现这个立即执行函数的形参就是一个,key为引入文件路径,value为该模块代码的函数。 所以比较重要的就是通过webpack的配置文件中的entry的入口文件,…...
负载均衡深度实践:基于Nginx+Keepalived的高可用方案与Zabbix监控设计
目录 综合实践-部署负载均衡 1 环境准备 2 zabbix监控nginx和keeplive 2.1 nginx安装 2.2 安装keepalived 2.3 部署vue 2.4 安装agent 2.5 zabbix监控nginx配置 2.6 zabbix监控keeplived 3 zabbix监控jar 3.1 安装agent 3.2 安装jdk 3.3 部署jar包 3.4 配置web 4…...
深度学习基础--目标检测入门简介
博主简介:努力学习的22级本科生一枚 🌟 博客主页:羊小猪~~-CSDN博客 内容简介:探索AI算法,C,go语言的世界;在迷茫中寻找光芒🌸 往期回顾:yolov5基础–一步一步教…...
Redis ⑧-RESP | 渐进式遍历 | 数据库管理
Redis data-types 除了之前学习的 string、hash、list、set、Zset 五种数据结构之外,Redis 还提供了 bitmap、bitfield、 hyperloglog、geospatial、stream 等数据结构。 另外的一些数据结构,都是在某些特定环境下才会使用,使用频率不高&…...
【Android】四大组件之ContentProvider
目录 一、什么是 ContentProvider 二、创建和使用 ContentProvider 三、跨应用权限控制 四、数据变更通知 五、多表关联与视图 六、异步处理 你手机里的通讯录,存储了所有联系人的信息。如果你想把这些联系人信息分享给其他App,就可以通过ContentP…...
Qwen3 发布:优化编码与代理能力,强化 MCP 支持引领 AI 新潮流
人工智能领域的每一次重大突破都如同璀璨星辰,照亮了人类前行的道路。2025 年 4 月 29 日凌晨,阿里巴巴旗下的 Qwen 官方团队正式发布了最新一代大语言模型 ——Qwen3,犹如一颗重磅炸弹,在 AI 领域掀起了惊涛骇浪。此次发布&#…...
LEETERS题解
【题目描述】 给出一个rowcolrowcol的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。 【输入】 第一行,输入字母矩阵行数RR和列数SS,1≤R,S≤…...
图像加密算法概述
版本: 1.0 日期: 2025年5月1日 目录 引言 1.1 什么是图像加密?1.2 为什么需要图像加密?1.3 图像数据的特点与加密挑战加密基础概念 2.1 明文与密文2.2 加密与解密2.3 密钥2.4 对称加密与非对称加密为什么传统文本加密算法不完全适用于图像? 3.1 数据量巨大3.2 高度冗余性…...
loads、dumps、jsonpath使用场景
在处理JSON数据时,loads、dumps 和 jsonpath 是三个非常有用的工具或概念。它们各自在不同的场景下发挥作用,让我们一一来看: 1. loads loads 函数是 Python 中 json 模块的一部分,用于将 JSON 格式的字符串解析成 Python 的数据…...
Winform(7.序列化方式整理)
今天我又对序列化方式进行了整理,可以与上一篇序列化方式一起看 一.序列化方式(四种) 1.二进制序列化 //定义 Person 类,需要标记为可序列化 [Serializable] public class Person { public string Name{get;set;} public int Age{get;set;} } 在进行二进制序列化…...
通过AI的联网功能提升搜索检索能力
以百度ai搜索(百度AI搜索 - 办公学习一站解决)为例,ai会自动根据问题搜集现有互联网文章,避免人工通过传统检索引擎的结果逐个去查找,这种方式文章的相关性会更高。 tip:快速查看每篇文档,仅关…...
Spring IoC容器的设计与实现
Spring整体架构与模块划分 核心容器(Core Container) spring-core 基础工具类:如资源加载(Resource接口)、反射工具(ReflectionUtils)、类型转换(ConversionService)。…...
使用vue的插值表达式渲染变量,格式均正确,但无法渲染
如图,作者遇到的问题为,输入以下代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...
数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
一、引言:数据库开发的 “效率革命” 正在发生 在某互联网金融公司的凌晨故障现场,资深 DBA 正满头大汗地排查一条执行超时的 SQL—— 该语句涉及 7 张核心业务表的复杂关联,因索引缺失导致全表扫描,最终引发交易系统阻塞。这类场景在传统数据库开发中屡见不鲜:据 Gartne…...
21.1Linux中的LCD驱动实验(知识)_csdn
1、LCD 和 LTDC 简介 1.1、LCD 简介 1.1.1、分辨率 1.1.2、像素格式 可以看到红、绿、蓝每个8位,还有一位是A7~A0就是透明通道,32位ARG8888。 1.1.3、LCD 屏幕接口 1.1.4、LCD 时间参数 如果将 LCD 显示一帧图像的过程想象成绘画,那么…...
Angular教程前言:历史、安装与用途
Angular 是一个强大且流行的开源前端 Web 应用程序框架,由 Google 开发并维护 1。它在现代 Web 开发中占据着重要的地位,尤其在构建动态、高效且可扩展的 Web 应用程序方面表现出色,特别适用于单页应用程序 (SPA) 和复杂的用户界面 1。本教程…...
node.js模块化步骤(各标准区别)CommonJS规范、AMD规范、UMD规范、ES Modules (ESM)
前后端建议统一使用ESM 文章目录 Node.js模块化发展历程与标准对比一、模块化的意义1.1 解决的核心问题1.2 没有模块化的问题 二、CommonJS规范2.1 核心特征2.2 实现示例 三、AMD (Asynchronous Module Definition)3.1 特点3.2 代码示例 四、UMD (Universal Module Definition)…...
Unity图片导入设置
🏆 个人愚见,没事写写笔记 🏆《博客内容》:Unity3D开发内容 🏆🎉欢迎 👍点赞✍评论⭐收藏 🔎Unity支持的图片格式 ☀️BMP:是Windows操作系统的标准图像文件格式,特点是…...