自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(223)
  • 资源 (1)
  • 收藏
  • 关注

原创 coturn 5G手机与wifi电脑视频通话失败解决

一度在百度,csdn上找答案,浪费了一个星期的时间,没有找到解决方案。网络上千篇一律的都是coturn的安装文章,也仔细一一对比过。终于,google后,发现有人也有类似问题,并且已经解决了。很简单,只用修改coturn配置文件。coturn安装后,使用WIFI网络的电脑发送视频通话邀请给5G网络的手机,能正常视频通话。那为什么放开server-relay这个参数就可以了呢。反之,5G网络的手机发送视频通话邀请给WIFI网络的电脑却失败了。

2025-12-01 16:57:32 194

原创 centos7安装coturn,实现WebRTC音视频通话

Coturn是一个开源的STUN/TURN服务器,主要用于解决NAT穿透问题,支持WebRTC等实时音视频通信场景。核心功能- STUN服务:帮助设备发现NAT后的公网地址和端口,用于P2P通信。- TURN服务:通过中继转发实现NAT穿透,适用于无法直接P2P连接的场景。

2025-11-28 16:49:22 893

原创 unipush2.0安卓app不打包在线调试

 手机端每次调试unipush消息推送都要打包apk,然后安装到手机,耗时且无法看到调试日志。下面的方法可以便捷的看到整个调试过程。

2025-11-26 15:12:31 419

原创 uniapp+unipush2.0+WebRTC实现h5多人音视频通话

群聊选择需要视频通话的人,调用如下方法进入视频通话。gvideocallh5.vue,群聊音视频通话页面。App.vue监听unipush推送的消息。接口转发uniapp。

2025-11-26 14:03:15 282

原创 uniapp+unipush2.0+WebRTC实现h5一对一视频通话

uniapp调用接口,使用unipush云函数转发消息,App.vue监听消息。sendvideocall.vue,发起视频通话邀请。videocallh5.vue,接通后,视频通话页面。App.vue中unipush收到后端转发的消息。videocallrev.vue,接听通话页面。

2025-11-26 13:43:53 242

原创 uniapp使用websocket+WebRTC实现h5视频通话

SignalingWebSocket.java,接收前端websocket连接,接收websocket的send方法传递的数据,解析数据后转发给接收方。wssocket.js,用于创建websocket,发送到后端信令服务器,并接收信令服务器转发过来的消息。videocallrev.vue,接收方收到通话邀请后跳转的页面,在此页面可以同意或拒绝通话。videocallh5.vue,接收方同意通话邀请后,呼叫方和接收方都跳转的页面。sendvideocall.vue,呼叫方发起视频通话邀请。

2025-11-26 11:15:15 358

原创 什么是WebRTC

WebRTC(Web Real-Time Communication)是一项由谷歌开源的实时通信技术,允许浏览器或应用直接建立点对点连接,实现音视频流、文件传输等数据交互,无需安装插件‌。连接时序图:这张图展示了‌‌中‌‌的流程,核心是通过信令服务器(Signal Server)协调Caller(发起方)和Called(接收方)的连接,最终实现P2P通信。

2025-11-26 10:45:48 633

转载 Spring Boot 集成 Flyway,数据库也能做版本控制

使用 Flyway 可以很方便的处理数据库表结果、数据的版本迁移,使用简单、自动化,大大提高生产力,再也不需要手工在控制台进行,那样更容易出错或者遗漏,毕竟人都是会经常犯错的。本文使用的是 Java API 的方式,在项目启动时进行迁移,另外还有其他 3 种方式,文前有介绍,大家根据实际需要进行应用。

2025-10-14 10:39:48 268

转载 JDK收费的各个版本

从2019年1月份开始,Oracle JDK 开始对 Java SE 8 之后的版本开始进行商用收费,确切的说是 8u201/202 之后的版本。如果你用 Java 开发的功能如果是用作商业用途的,如果还不想花钱购买的话,能免费使用的最新版本是 8u201/202。对于绝大多数个人开发者和小型企业来说,采用免费版本已经足够,没有必要购买付费版本,除非用户需要使用高级功能、服务或支持。对比免费版本和收费版本,较高级别的版本包含更多的功能和技术支持服务。JDK9、JDK10,全版本免费。

2025-10-09 14:38:07 643

原创 uniapp富文本editor在插入emoji表情后,如何不显示软键盘?

选择emoji表情后将富文本修改为只读,getContents方法获取editor内容,拼接emoji表情后setContents方法重新设置editor内容,完成后,修改富文本为可写,同时blur方法使富文本编辑器失焦,同时收起键盘。在选择emoji表情后,刚开始用的是insertText{text:emoji表情},表情是插入了,但是由于输入框有了焦点,自动弹出了软键盘,收起了emoji表情,如果需要选emoji很麻烦,得再次点击emoji选择按钮。这种的话软键盘不会突然闪现,提高用户体验。

2025-09-23 21:30:02 321

原创 uniapp+unipush2.0实现好友私信、群聊(四)

在App.vue入口文件中,使用uni.getPushClientId获取客户端唯一的推送标识。注意:这是一个异步的方法,且仅支持uni-push2.0。然后判断用户是否已经登录。如果登录绑定用户id和设备id。如果未登录,在登录页面,登录成功后绑定用户id和设备id。

2025-09-07 22:36:47 279

原创 uniapp+unipush2.0实现好友私信、群聊(三)

还有一种消息,如邀请人员到群组,需要组装群组信息,邀请人信息,复杂格式的数据推送给被邀请人员,但我认为这是不需要通知栏告知用户的,这是一种静默消息,只需要程序感知到就行了。所以被邀请人的设备离线的话我们就不做离线手机厂商推送了,反之如果设备在线的话,通过程序的监听接口就处理了此类消息,且不在通知栏通知用户。因为有些消息,比如自己给自己的其他设备同步消息的时候,如果其他设备离线,那么就不在做离线厂商推送。,此时你的客户端将收到推送消息(应用关闭时为通知栏消息,在线时代码监听到推送消息)。

2025-09-07 22:17:18 591

原创 uniapp+unipush2.0实现好友私信、群聊(二)

根据项目设置,复制内容到“厂商推送设置”。添加项目,配置推送。

2025-09-05 22:27:13 143

原创 uniapp+unipush2.0实现好友私信、群聊(一)

4.打开 HBuilderX,双击项目中的 “manifest.json” 文件,选择“安卓/iOS模块配置”,在配置页面中向下找到“Push(消息推送)”,勾选后2.0版本,按需勾选离线推送手机厂商。配置界面,仅勾选在线推送,未勾选离线推送时启用的 sdk),获取到的 cid 的 phoneType 均为小程序,而不管实际上你的客户端是 APP、小程序还是 web。,客户端就会自动创建“通知栏消息”(此时你监听不到消息内容),当用户点击通知栏消息后,APP才能监听到消息内容。

2025-09-05 22:09:33 846

原创 uniapp+高德地图实现打卡签到、打卡日历

(1)获取打卡规则:上下班打卡时间、当前位置标记、考勤打卡范围,加载打卡记录,打卡距离计算是否外勤打卡,上班打卡还是下班打卡,上班是正常打卡或迟到打卡,下班是正常打卡或早退打卡等计算。打卡提交和更新打卡。是否需要上班接口需要获取考勤规则中的打卡星期,如果在打卡星期范围内,则默认为上班日,不在范围内则为休息。如果配置法定节假日自动排休,则法定节假日休息日对应需要将打卡日期改为休息,法定节假日补班日(上班日)对应需要将打卡日期改为上班。选择日期后统计打卡次数,获取打卡时间和位置,外勤打卡标记。

2025-07-26 19:06:58 1294

原创 为什么CMS内容管理系统的标签用法劝退了很多人?

CMS(内容管理系统)的标签功能是其核心能力之一,允许用户灵活调用内容、控制页面展示逻辑。然而,许多用户在实际使用中感受到较高的学习门槛和操作复杂性,导致“劝退”现象普遍存在。

2025-07-14 15:10:38 441

原创 uniapp video视频全屏播放后退出,页面字体变大,样式混乱问题

但是因为uniapp端的开发都是使用rpx作为屏幕尺寸计算参数,不可能因为video全屏播放功能就整个全部修改,工作量大,耗时耗力。uniapp官方的说法是因为页面使用rpx,但是全屏和退出全屏自动计算屏幕尺寸不支持rpx,建议使用px。4.在空白页面中切换为竖屏后再返回video所在页面。这时候rpx参数重新计算,不会污染页面样式。3. method方法中监听退出全屏事件,如果退出,跳转上述空白页面。我的方式是:通过创建空白页面过渡。所以就有了下面的解决方法。

2025-07-14 11:07:47 728

原创 PC网站和uniapp安卓APP、H5接入支付宝支付

如果要在应用中使用支付和资金等相关产品,需要将应用和支付宝商家平台账号绑定,应用才可调用需要商家开通的产品。手机网站支付是指商家在移动端网页展示商品或服务,用户在商家页面确认使用支付宝支付后,浏览器自动跳转支付宝 App 或支付宝网页完成付款的支付产品。电脑PC网站支付是指商户在电脑网页展示商品或服务,用户在商户页面确认使用支付宝支付时,浏览器自动跳转支付宝电脑网页完成付款的支付产品。,这里的应用类型也是网页应用,可以和上面的PC网页应用共享,所以不用再创建。应用类型选择网页应用,填入应用访问的网站地址。

2025-07-11 14:10:45 3098

原创 PC网页端和uniapp小程序、安卓app、H5接入微信支付

需要注意的是小程序下单接口需要传入openid,所以我们需要在登录小程序时,先调用微信登录接口实现登录,同时获取用户openid并保存到数据库,在下单时获取openid,作为入参。由于Native下单接口需要传入微信公众平台服务号的appid,所以我们需要到微信公众平台注册服务号,微信认证完成后开通微信支付功能。传入商户号id,服务号appid,支付成功回调地址及订单号,支付金额,描述等参数到下单接口。小程序支付提供商户在自身微信小程序中使用微信支付收款的能力。,调起微信支付收银台中间页,完成微信支付。

2025-07-04 16:49:30 911

原创 web和uniapp接入腾讯云直播

云直播控制台提供地址生成器功能,支持通过填写地址拼接信息,辅助用户快速生成推流/播放地址。使用云直播服务,至少需要2个域名,一个作为推流域名,一个作为播放域名,且推流和播放不能使用相同的域名。需要注意的是生成的HLS播放地址是http的,小程序支持https。在前面获取到的播放地址中已经生成了HLS播放地址。域名管理,选择推流域名->推流配置,获取推流的鉴权key。域名管理,选择播放域名->访问控制,获取播放的鉴权key。1.web播放,使用腾讯云视立方SDK播放。设置直播推流地址和推流码。

2025-06-18 15:44:49 1348

原创 minio使用mc备份数据与恢复

使用mc cp命令将备份的数据恢复到Minio服务器。命令将服务器上的数据备份到本地或其他服务器。例如,将服务器minio119上名为。为需要备份的Minio服务器设置别名。三、设置minio别名。的桶的数据备份到本地。

2025-03-17 11:18:28 1035

原创 uniapp webview嵌入外部h5网页后的消息通知

开发,form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。移动端使用uniapp开发,但是因为form-create移动端的只支持vant,不支持uniapp。官方的说法是移动端用vant开发后通过webview的方式嵌入到uniapp。uniapp嵌入开发好的h5页面没有问题,但是h5页面需要保存表单数据和发起工作流流程,做完这个操作后需要告知uniapp关闭webview页面,并跳转uniapp相应页面。文件到本地,引入到js目录下。

2025-02-17 09:52:09 1376

原创 Jeecgboot tinyMCE富文本集成kityformula-editor数学公式插件

(1).vue3项目public目录下依次新建文件夹:static->tinymce->plugins,然后将解压后的文件夹拷贝到plugins目录下,如下图所示。(1) 由于部署后访问会要带上发布路径,所以插件加载它的html时也要带上发布路径。确保浏览器能直接访问kityFormula.html,否则插件页面也是加载不出来的。(2)修改插件plugins.js和plugins.min.js。这里很重要,如果没做修改会访问不到插件页面。1、获取发布路径,追加到页面路径。三、修改插件页面路径。

2024-12-13 16:48:03 770

原创 使用AI工具Screenshot to Code将UI设计图翻译成代码

一般有两种方式,一种是到openAI官网注册账号,付费申请GPT4的apikey。另一种是某宝买代理。需要一个能够访问 GPT-4 Vision 的 OpenAI API key。3.启动完成后,在 http://localhost:5173 访问应用。2.启动,两种方式:源码启动和docker启动。二、安装Screenshot to Code。左边的是设计图,右边是生成的代码渲染的页面。一、获取openAI apikey。(2)docker 启动。三、将设计图翻译成代码。

2024-12-04 15:05:57 1708

原创 vue2和vue3两种倒计时CountDown实现

一、vue2组件封装。

2024-11-28 14:53:26 733

原创 linux安装mysql8.0.40

5.更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限。4.检查mysql用户组和用户是否存在,如果没有,则创建。8.添加软连接,并启动mysql服务。(1)将服务文件拷贝到init.d下。7.编译安装并初始化mysql,6.编辑配置文件my.cnf。9.登录mysql,修改密码。一、下载MySQL安装包。1.查看glibc版本。3.创建数据初始化目录。(2)赋予可执行权限。

2024-11-25 14:04:46 1971 2

原创 docker+容器+redis+minio+java jar,实现开机自启动

加参数:--restart=always。1.minio配置文件,配置用户名和密码。五、java jar。

2024-11-25 11:52:34 425

原创 vue3+face-api实现人脸核身

内置了一些训练好的模型,通过这些预先训练好的模型,我们可以直接使用而不需要自己再去标注、训练,极大的降低了成本。找到node_modules/@vladmandic/face-api/model目录,复制model下的所有文件到public/models目录。face-api是一个建立在tensorflow.js内核上的 javascript 模块,它实现了三种。后端Java上传人脸核身照片时需转为base64,使用hutool工具。蓝色框上的0.3为视频采集到的人脸和目标图像对比的差距值,值越小越好。

2024-11-20 09:59:35 2021 1

原创 AmazonS3集成minio实现https访问

最近系统全面升级到https,之前使用http://localhost:9000访问minio的方式已然行不通,https服务器访问http资源报Mixed Content混合内容错误。exam-bucket为minio的桶。表示以exam-bucket桶开头的https请求都转发到minio。一般有两种解决方案,意识升级minio服务,配置ssl证书,支持https访问。另一种是使用现有的https证书配置nginx代理访问minio服务。s3Endpoint作为 AmazonS3访问minio的地址。

2024-11-19 15:30:24 1608

原创 Springboot集成ElasticSearch实现minio文件内容全文检索

你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。--link elasticsearch:es表示容器互联,即容器kibana连接到elasticsearch。(4)repository接口,继承ElasticsearchRepository。注意安装对应版本,否则可能会出现一些未知的错误。(2)接口elasticsearch.ts。,出现如下内容表示安装成功。(4)安装中文分词器。

2024-11-12 09:40:58 3781

原创 antdesignvue + AWS-S3实现Minio大文件分片上传

用于记录上传的文件信息:md5值,对象key等信息。1.上传组件封装 AwsS3Upload.vue。4.新建数据库表aws_s3_upload。2.配置application.yml。2.接口 awss3.ts。

2024-11-04 13:39:10 1098

原创 antdesignvue modal对话框可拖拽

【代码】Vue3 + antdesignvue modal对话框可拖拽。

2024-10-25 09:48:27 805

转载 video 标签视频请求多次的原理

从天猫某活动视频不必要的3次请求说起。

2024-07-31 15:32:45 1152

转载 视频分段下载

由于浏览器安全策略的限制,javascript程序不能自由地访问本地资源,一般网页通常也只是用此来分段下载视频在线播放,通常只在客户端会实现分段下载功能,所以这里只展示后端部分的代码。Content-Range:bytes 0-200/3000 表示服务器返回了0-200个字节的数据,总共3000字节的数据。Accept-Ranges:bytes 当浏览器发现Accept-Ranges头时,可以尝试继续中断了的下载,而不是重新开始。每个请求只下载其中一段数据,可以看情况采用是并行还是串行的方式。

2024-07-30 14:55:06 506

原创 微信小程序认证,备案,域名,证书,上线全流程

7.启动nginx:docker run --name exam_app_nginx -p 80:80 -p 443:443-d -v /usr/local/nginx/conf/exam_app_nginx.conf :/etc/nginx/nginx.conf -v /home/app:/home/app --restart=always nginx。5.创建nginx配置文件: vim /usr/local/nginx/conf/exam_app_nginx.conf。3.购买https证书。

2024-04-07 10:40:54 7672 3

原创 h5接入腾讯云人脸核身

跳转前端页面,监听BizToken参数和自助传入的参数,获取核验结果。如果通过,则可以进行考试。跳转url核验,核验完成后,会根据实名核身鉴权接口传入的RedirectUrl,点击“开始考试”后,读取本次考试 是否需要进行人脸核验。接口时,必须传入认证人姓名和身份证号。,接口会返回用于发起核身流程的URL。3.填写用户授权信息,选择对比源。

2024-04-01 17:13:28 3998

原创 String 作为方法参数是值传递还是引用传递

因为用到new关键字,肯定会在堆中创建一个String对象,如果字符池中已经存在”abc”,则不会在字符串池中创建一个String对象,如果不存在,则会在字符串常量池中也创建一个对象。因此,在这种情况下,会创建两个对象:一个在堆上,另一个在字符串常量池中。可能创建一个或者不创建对象,如果”abc”在字符串池中不存在,会在java字符串池中创建一个String对象(”abc”),然后str指向这个内存地址,无论以后用这种方式创建多少个值为”abc”的字符串对象,始终只有一个内存地址被分配。

2024-03-22 15:59:28 1200

原创 cms系统页面静态化的利弊

综上所述,静态化页面能够有效提升网站性能与用户体验,同时也面临内容更新不及时、个性化内容受限等问题,因此在选择是否进行页面静态化时需综合考虑具体情况,权衡利弊,选择最适合的方式来优化网站性能。静态化可以显著提高网站加载速度,由于直接加载静态HTML文件,减少了动态页面生成和数据库查询的时间,从而改善用户体验,降低网页加载时间。静态页面生成后可以直接由web服务器响应,减少了动态页面生成的计算资源消耗,因此可以降低服务器负载,提高网站的整体性能。

2024-03-22 13:52:21 763

原创 vite+vue3门户网站菜单栏动态路由控制

门户网站用户端的需要分板块展示,板块内容由管理端配置,包括板块的名称,访问路径,理由组件,展示顺序,是否展示。用户访问门户网站用户端时,展示菜单跳转通过读取板块配置,动态生成路由。3.路由守卫 router/guard/index.ts。2.路由配置文件 router/index.ts。4.main.ts配置路由守卫。1.后端接口获取路由。

2024-03-08 13:18:12 926

原创 微信商城小程序设计

完整实现了集下单、支付、物流、评价、退款等功能的微信商城版小程序以及商城的管理后台,涉及商品的分类、规格的配置,商品上架等等。

2024-03-04 12:58:50 861

纠错编码大作业题目

与纠错编码相关的论文要求以及格式安排,很有用

2011-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除