愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
2021-07-29 .NET高级班 123-直播项目专题(微信支付对接)
微信支付:必备的三个参数AppID: 网站的IDMchID: 钱汇入账号Key: 我们网站去和微信交互的时候使用到一个加密key准备工作:1.访问:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F2支付的流程解析:1.微信有一个公共的支付接口: 通过发起http请求,调用这这个公共接口,可以获取针对于当前这一个订单的专属支付链接;问题:如果获取专属的支付链接:需要带上各种参数:参数中就包含AppID:原创 2021-07-29 22:56:40 · 50329 阅读 · 0 评论 -
2021-07-26 .NET高级班 122-直播项目专题(腾讯云云直播实现视频直播功能)
腾讯云直播产品配置一、云直播准备步骤:https://cloud.tencent.com/?fromSource=gwzcw.2212127.2212127.2212127&utm_medium=cpd&utm_id=gwzcw.2212127.2212127.22121271.访问:https://cloud.tencent.com/进入腾讯云首页2.注册账号3.实名认证(必须的)4.购买套餐—如果大家只是学习用;选择一个基础套餐就可以;5.配置域名 注意:又需要自己购买原创 2021-07-26 00:23:56 · 50642 阅读 · 1 评论 -
2021-07-25 .NET高级班 121-直播项目专题(id4无感刷新token)
1.前端401处理import axios from 'axios'import {useRouter} from "vue-router"; import { ElMessage } from 'element-plus'const router= useRouter();const $http = axios.create({ // baseURL:'http://localhost:5000/', timeout:20000, headers:{原创 2021-07-25 23:05:12 · 50572 阅读 · 0 评论 -
2021-07-24 .NET高级班 120-直播项目专题(图片防盗链)
/// <summary>/// 这里是一个标准的中间件的定义/// </summary>public class HotlinkingPreventionMiddleware{ private readonly RequestDelegate _next; private readonly IConfiguration _IConfiguration = null; public HotlinkingPreventionMiddlew.原创 2021-07-24 11:33:31 · 50233 阅读 · 0 评论 -
2021-07-24 .NET高级班 119-直播项目专题(头像上传)
vue前端<el-upload class="avatar-uploader" :disabled="!isChangeInfoForm" action="api/File/UploadFile" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"原创 2021-07-24 00:13:38 · 50266 阅读 · 0 评论 -
2021-07-21 .NET高级班 118-直播项目专题(阿里云实现短信验证码发送)
一:发送短信验证码/// <summary>/// 发送短信验证码/// </summary>/// <param name="mobile"></param>/// <returns></returns>[Route("SendVerifyCode")][HttpPost]public JsonResult SendVerifyCode(){ //检查的时候,需要 ip-- if (HttpConte原创 2021-07-21 22:22:36 · 50148 阅读 · 1 评论 -
2021-07-21 .NET高级班 117-直播项目专题(登录功能实现)
一:首先上id4,密钥认证public IActionResult Login(LoginModel loginModel){ ApiResult apiResult = new ApiResult(); string message = string.Empty; string key = $"{loginModel.Tag}_VerifyCode"; //生成验证码的时候,有验证码,通过tag_VerifyCode 作为Key保存Redis string redi原创 2021-07-21 01:09:01 · 50325 阅读 · 0 评论 -
2021-07-20 .NET高级班 116-直播项目专题(后台模块的鉴权授权)
这边采用的是cookier的策略认证//定义策略参数,必须实现这个IAuthorizationRequirement接口public class CustomAuthorizationRequirement: IAuthorizationRequirement{ public CustomAuthorizationRequirement(PolicyEnum policyname) { this.PolicyName = policyname; }原创 2021-07-20 21:41:37 · 50230 阅读 · 0 评论 -
2021-07-20 .NET高级班 115-直播项目专题(权限模块的缓存)
1.aotufac拦截器/// <summary>/// 记录日志/// </summary>public class CustomAutofacCacheAop : IInterceptor{ private readonly ILogger<CustomAutofacCacheAop> _logger; private readonly RedisHashService _RedisHashService; private reado原创 2021-07-20 21:17:05 · 50285 阅读 · 0 评论 -
2021-07-19 .NET高级班 114-直播项目专题(WebSocket实时统计排行榜)
public class WebSocketConnect{ //private RedisZSetService redisZSetService = new RedisZSetService(); private WebSocket socket = null; private ICSStatisticsService _CSStatisticsService = null; public WebSocketConnect(WebSocket socket, ICSSt原创 2021-07-19 23:55:21 · 50609 阅读 · 1 评论 -
2021-07-19 .NET高级班 113-直播项目专题(AmCharts实时图表的使用)
@{ ViewData["Title"] = "Index";}<div class="row"> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12"> <div class="dashboard-stat blue"> <div class="visual"> <i class="fa fa-comments"&原创 2021-07-19 23:31:05 · 50456 阅读 · 1 评论 -
2021-07-14 .NET高级班 112-直播项目专题(架构设计和数据库设计)
1:基础架构网站: ZhaoXi.LiveBackgroundManagement.WebSite实体对象:ZhaoXi.LiveBackgroundManagement.Models数据访问:ZhaoXi.LiveBackgroundManagement.DataAccessEFCore共用类库:ZhaoXi.LiveBackgroundManagement.Common业务逻辑:ZhaoXi.LiveBackgroundManagement.Business.Services业务逻辑抽象:Z原创 2021-07-14 08:51:33 · 50444 阅读 · 0 评论 -
2021-07-12 .NET高级班 111-docker 的安装和各种环境部署
docker 的安装#在root 用户下#第一步 卸载旧的安装包yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine#第二步 安装需要的安装包yum install -y yum-utils#第三步 设置镜像的仓库yum-config-manager原创 2021-07-12 21:55:49 · 50549 阅读 · 2 评论 -
2021-07-11 .NET高级班 110-微服务架构(商城案例)
1、需求说明实现用户下单操作流程(创建订单->扣减库存->用户支付->更新订单状态)途经微服务 订单微服务 → 库存微服务→ 订单微服务→ 账户微服务2、构建微服务项目(独立运行和部署)1、构建微服务项目(独立运行和部署)订单微服务->DB库存微服务->DB账户微服务->DB2、引入EFCore3、程序包管理器控制台:命令执行:3、工具–nuget包管理器–程序包管理器控制台:命令执行:1.Scaffold-DbContext "D原创 2021-07-11 18:00:10 · 49959 阅读 · 0 评论 -
2021-07-11 .NET高级班 109-爬虫专题(京东商城)
一:首先封装http请求类和日志类public class HttpHelper{ private static Logger logger = new Logger(typeof(HttpHelper)); /// <summary> /// 根据url下载内容 之前是GB2312 /// </summary> /// <param name="url"></param> /// <returns原创 2021-07-11 00:32:15 · 50750 阅读 · 0 评论 -
2021-07-11 .NET高级班 108-Dapper的使用
一:首先安装如下包DapperDapper.ContribMicrosoft.Extensions.OptionsSystem.Data.SqlClient二:封装public class DapperContext : IDisposable{ private IDbConnection Connection = null; public DapperContext() { string _ConnectionString = Configurat原创 2021-07-11 00:16:02 · 50111 阅读 · 1 评论 -
2021-07-08 .NET高级班 107-.NET5驱动memcache
.NET5驱动memcache准备好一个.NET5的 Web应用程序1.Nuget引入程序集EnyimMemcachedCore2.增加配置文件3.注册服务services.AddEnyimMemcached(options => Configuration.GetSection("enyimMemcached").Bind(options));4.use中间件app.UseEnyimMemcached();//memcachedcore25.构造函数注入6.通过Get、Se原创 2021-07-08 00:39:27 · 50489 阅读 · 1 评论 -
2021-07-08 .NET高级班 106-memcache常见的命令
memcache常见的命令准备工作:memcache服务必须要是启动状态;1.stats命令2.add命令2.Set : 命令参数跟add差不多-----如果说keymemcache中已经存在,就替换,否则就新增;3.get : 从memcache中获取数据4.flush_all: 清除所有的数据----慎用;在生产环境一般不会使用这个;如果清除所有的缓存数据,就需要重新初始化缓存;5.incr:自增命令: 如果add了一个1 到memcache ;这个命令可以把1 做步长值的增加;----原创 2021-07-08 00:35:57 · 50388 阅读 · 2 评论 -
2021-07-08 .NET高级班 105-memcache安装
一:memcache安装1.windows安装,一般是测试环境;2.linux安装:一般在生产环境;Windows安装:1.一次性安装—通过命令启动,会占据终端;在windows下,后台启动是失效2.安装成windows服务–随机自启动官网上并未提供 Memcached 的 Windows 平台安装包,我们可以使用以下链接来下载,你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可:32位系统 1.2.5版本:http://static.runoob.com/download/mem原创 2021-07-08 00:35:03 · 50619 阅读 · 3 评论 -
2021-07-08 .NET高级班 104-memcache缓存的介绍
memcache篇简介:官网:http://memcache.org/定义:memcache是一个内存缓存系统,memcache里面的数据全部缓存在内存中,速度比硬盘要快。存储介质速度:硬盘最慢(TB),内存(G),一级缓存更快(M),二级缓存更快(M),cup(寄存器,电脑中最快的存储单元,只能存储简单的0和1)为什么使用memecache做数据缓存?web1.0: 用户只能看信息—看新闻web2.0: 不仅要求能看,而且需要能够评论—需要让客户单和服务器做交互web3.0:在Web2原创 2021-07-08 00:21:36 · 50360 阅读 · 0 评论 -
2021-07-07 .NET高级班 103-Cache缓存的实现
静态字段缓存基本使用 /// <summary> /// 1 客户端缓存-CDN缓存-反向代理缓存-本地缓存 /// 2 本地缓存原理和手写基础实现 /// 3 缓存更新/过期/多线程测试 /// 4 缓存类库封装和缓存应用总结 /// </summary> /// <param name="args"></param> static原创 2020-08-15 13:54:52 · 510945 阅读 · 1 评论 -
2021-07-05 .NET高级班 102-Socket的使用
一:Socket的基本使用tcp使用服务端public static void Proccess(){ int port = 2018; string host = "127.0.0.1"; IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip, port); Socket sSocket = new Socket(AddressFamily.InterNetwor原创 2020-08-20 10:53:41 · 495927 阅读 · 1 评论 -
2021-07-05 .NET高级班 101-Redis分布式缓存 ServiceStack中List类型
RedisListService 类请参考第一篇的封装redis 数据结构List的使用using (RedisListService service = new RedisListService()){ service.FlushAll(); service.Add("article", "XT1234"); service.Add("article", "kevin"); service.Add("article", "大叔"); service.Add(原创 2020-08-16 09:25:50 · 505426 阅读 · 3 评论 -
2021-07-05 .NET高级班 100-Redis分布式缓存 ServiceStack中ZSet类型
RedisZSetService 类请参考第一篇的封装redis 数据结构ZSet的使用using (RedisZSetService service = new RedisZSetService()){service.FlushAll();//清理全部数据service.Add("advanced", "1");service.Add("advanced", "2");service.Add("advanced", "5");service.Add("advanced", "4");s原创 2020-08-16 09:25:36 · 505699 阅读 · 1 评论 -
2021-07-05 .NET高级班 99-Redis分布式缓存 ServiceStack中Set类型
RedisSetService 类请参考第一篇的封装redis 数据结构Set的使用using (RedisSetService service = new RedisSetService()){service.FlushAll();//清理全部数据service.Add("advanced", "111");service.Add("advanced", "112");service.Add("advanced", "114");service.Add("advanced", "114"原创 2020-08-15 15:15:19 · 511005 阅读 · 0 评论 -
2021-07-05 .NET高级班 98-Redis分布式缓存 ServiceStack中Hash类型
RedisHashService 类请参考第一篇的封装redis 数据结构Hash的使用using (RedisHashService service = new RedisHashService()){service.SetEntryInHash("student", "id", "001");service.SetEntryInHash("student", "name", "张小徐");service.SetEntryInHash("student", "remark", "啦啦啦");原创 2020-08-15 15:14:28 · 511496 阅读 · 2 评论 -
2021-07-05 .NET高级班 97-Redis分布式缓存 ServiceStack中String类型
RedisStringService 类请参考第一篇的封装redis 数据结构string的使用using (RedisStringService service = new RedisStringService()) { service.Set<string>("student1", "梦的翅膀"); Console.WriteLine(service.Get("student1原创 2020-08-15 15:13:23 · 510488 阅读 · 1 评论 -
2021-07-05 .NET高级班 96-Redis分布式缓存 ServiceStack的封装
一:引入以下包nuget安装:ServiceStack二:redis代码的封装配置文件/// <summary>/// redis配置文件信息/// 也可以放到配置文件去/// </summary>public sealed class RedisConfigInfo{ /// <summary> /// 可写的Redis链接地址 /// format:ip1,ip2 /// /// 默认6379端口 /原创 2021-07-05 20:13:59 · 50461 阅读 · 0 评论 -
2021-07-05 .NET高级班 95-Redis分布式缓存 ServiceStack的破解
步骤一: 修改ServiceStack.Text下载路径https://github.com/ServiceStack/ServiceStack.Text找到LicenseUtils类:修改 ServiceStack.text源代码6000限制方法:直接修改 LicenseUtils里面的ApprovedUsage,直接return代码如下public static void ApprovedUsage(LicenseFeature licenseFeature, LicenseFeatu原创 2021-07-05 20:02:13 · 50365 阅读 · 0 评论 -
2021-07-04 .NET高级班 94-nginx集成grpc的配置
# HTTPS server # 这里可以配置gRPC集群 server { listen 448 ssl http2; #因为gRPC是基于Http2.0这需要增加配置http2 server_name localhost; ssl_certificate cert.pem; ssl_certificate_key cert.key; # #ssl_session_cac原创 2021-07-04 20:57:09 · 50752 阅读 · 0 评论 -
2021-07-04 .NET高级班 93-CentOS7安装nginx及nginx配置
CentOS7安装nginx及nginx配置安装所需插件1、安装gccgcc是linux下的编译器命令:查看gcc版本gcc -v一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到,安装命令:yum -y install gcc2、pcre、pcre-devel安装pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。安装命令:yum install -y pcre pcre-转载 2021-07-04 17:34:57 · 50756 阅读 · 1 评论 -
2021-07-04 .NET高级班 92-Nginx篇
Nginx篇1 基本操作命令先CD到nginx.exe目录启动nginx服务nginxstart nginx优雅停止nginx,有连接时会等连接请求完成再杀死worker进程nginx -s quit优雅重启,并重新载入配置文件nginx.confnginx -s reload查看nginx配置是否正确,测试配置是否有语法错误nginx -t查看帮助信息nginx -h指定配置文件nginx -c filename停止服务nginx -s stop nginx2 负载原创 2021-07-04 17:21:58 · 50644 阅读 · 1 评论 -
2021-07-03 .NET高级班 91-ASP.NET MVC WebApi前后端传参详解
using (RedisListService service = new RedisListService()){ service.FlushAll(); service.Add("article", "XT1234"); service.Add("article", "kevin"); service.Add("article", "大叔"); service.Add("article", "C卡"); service.Add("article", "原创 2020-08-16 22:57:07 · 505201 阅读 · 0 评论 -
2021-07-03 .NET高级班 90-分布式服务 WCF的使用
using (RedisListService service = new RedisListService()){ service.FlushAll(); service.Add("article", "XT1234"); service.Add("article", "kevin"); service.Add("article", "大叔"); service.Add("article", "C卡"); service.Add("article", "原创 2020-08-16 22:56:03 · 505579 阅读 · 0 评论 -
2021-07-03 .NET高级班 89-分布式服务 WebService的基本使用
using (RedisListService service = new RedisListService()){ service.FlushAll(); service.Add("article", "XT1234"); service.Add("article", "kevin"); service.Add("article", "大叔"); service.Add("article", "C卡"); service.Add("article", "原创 2020-08-16 22:55:26 · 505430 阅读 · 2 评论 -
2021-07-03 .NET高级班 88-ASP.NET MVC 控制器工厂实现Unity容器注入
DI工厂public class DIFactory{ private static IUnityContainer _Container = null; private readonly static object DIFactoryLock = new object(); public static IUnityContainer GetContainer() { if (_Container == null) {原创 2020-08-19 11:11:52 · 497951 阅读 · 0 评论 -
2021-07-03 .NET高级班 87- ASP.NET MVC Log4日志的用法
using (RedisListService service = new RedisListService()){ service.FlushAll(); service.Add("article", "XT1234"); service.Add("article", "kevin"); service.Add("article", "大叔"); service.Add("article", "C卡"); service.Add("article", "原创 2020-08-17 14:11:28 · 505230 阅读 · 0 评论 -
2021-07-01 .NET高级班 86- ASP.NET MVC 管道模型详解
ASP.NET MVC管道模型图HttpModule管道public class BaseModule : IHttpModule{ /// <summary> /// Init方法仅用于给期望的事件注册方法 /// </summary> /// <param name="httpApplication"></param> public void Init(HttpApplication httpApplica原创 2020-08-20 09:59:36 · 495893 阅读 · 0 评论 -
2021-06-29 .NET高级班 85-ASP.NET Core mongodb数据库的基本语法
Mongodb基本操作查询数据库show databases切换数据库use test查询当前数据库下面的集合show collections创建集合db.createCollection("集合名称") 删 除 集 合 db.集合名称.drop()删除数据库db.dropDatabase() //首先要通过use切换到当前的数据库Mongodb增删改查(CURD)id 系统会自动加一个时间戳+机器码 生成增(insert)1 新增一原创 2021-06-29 23:18:16 · 50530 阅读 · 2 评论 -
2021-06-29 .NET高级班 84-ASP.NET Core RabbitMQ群集安装
★★★★★★http://www.rabbitmq.com/which-erlang.html (rabbitmq和erlang版本对应表)RabbitMQ 群集安装(每一台机器都操作)一、环境描述1、操作系统主机名IP地址操作系统版本erlang 版本rabbitmq 版本192.168.3.99node02CentOS Linux release 7.4.1708 (Core)21.03.7.7192.168.3.100node01CentOS Lin原创 2021-06-29 22:55:51 · 50585 阅读 · 1 评论