• 2024-07-04面向对象设计的6大原则
    一.软件设计的六大原则,通常被称为SOLID原则,是面向对象设计(OOD)中最重要的指导方针之一。这些原则旨在提高软件的可维护性、可扩展性和可读性。以下是SOLID原则的详细解释:1.单一职责原则(SingleResponsibilityPrinciple,SRP)单一职责原则指出,一个类应该只有一个引起它变化的
  • 2024-07-04MQ 如何防止消息重复入队
    在消息队列(MQ)系统中,防止消息重复入队是一项重要的任务,特别是在分布式系统中,这对于确保消息的幂等性和系统的一致性至关重要。以下是一些常见的方法和策略来防止消息重复入队:1.消息去重1.1.唯一消息ID为每条消息分配一个唯一的ID(如UUID)。在处理消息时,检查消息ID是否已经
  • 2024-07-04asp.net core 通过SFTP下载文件
     引用第三方库:Ssh.Net try{using(varclient=newSftpClient(ftpHost,ftpPort,ftpUsername,ftpPassword)){client.Connect();IEnumerable<ISftpFile>fileEnumerable=client.ListDirectory(remoteDirectory,null).Where(g
  • 2024-07-04UDP套接字基础总结
    最近和同学做一个有趣的实验,大致场景是:将摄像头连接到树莓派上,在树莓派上编写代码来捕获摄像头传回的数据。在这个场景中,树莓派是服务器端,摄像头是客户端,传递数据采用的协议是UDP。实验过程中发现自己对UDP套接字的使用有些不熟练,于是做一个总结。编程语言采用C,参考资料为《TCP/I
  • 2024-07-04WebSocket 前后端示例
    importcn.hutool.json.JSONUtil;importorg.springframework.stereotype.Component;importjavax.websocket.OnClose;importjavax.websocket.OnMessage;importjavax.websocket.OnOpen;importjavax.websocket.Session;importjavax.websocket.server.PathParam;imp
  • 2024-07-0302-JS函数基础
    01函数中的arguments1.1传多的参数也会存在里面<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><t
  • 2024-07-03从0到1写一个vue2管理后台项目(二)
    前言:现在有很多vue2的管理后台系统,为什么还要自己写一个呢?我觉得会用总没有会写理解得深一、有了基础框架(一)之后,对于一个vue开发工程师来说如何自己搭建自己的后台管理系统呢?当然可以直接抄一些现有的开源系统的代码,比如admin、ruoyi等,同样我想试试通过AI来写,一步一步完善,于是用
  • 2024-07-03基于Java的宠物领养管理系统
    目录        一、系统简介1.需求分析2 .编程环境与工具二、系统总体设计1.系统的功能模块图2.系统架构3.系统部署和测试步骤4.各功能模块简介(1)主页:(2)宠物知识:(3)领养中心:(4)团队博客:(5)团队展示:(6)注册/登录:三、主要业
  • 2024-07-02RTMP协议
       与RTSP不同,RTSP(Real-TimeStreamingProtocol)是一个控制协议,负责控制媒体流的传输,但不传输媒体数据本身。RTSP可以通过TCP或UDP传输RTP包来传输音视频数据。             RTMP(Real-TimeMessagingProtocol)是一个综合性的协议,不仅可以传
  • 2024-07-02logstash 收集 http POST请求中的json日志时,字段冲突问题
    https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html修改vim/etc/logstash/logstash.ymlpipeline.ecs_compatibility:disabled不关闭的话,会自动添加这几个字段可能会与json中的同名字段冲突{"@version"=>"1","user_agent"
  • 2024-07-02SpringAMQP
    快速入门在之前的案例中,我们都是经过交换机发送消息到队列,不过有时候为了测试方便,我们也可以直接向队列发送消息,跳过交换机。在入门案例中,我们就演示这样的简单模型,如图:也就是:publisher直接发送消息到队列消费者监听并处理队列中的消息:::warning注意:这种模式一般测试使
  • 2024-07-02开发自动发送国际短信的工具需要用到哪些源代码?
    在当今数字化、全球化的时代,国际短信作为一种高效、便捷的沟通方式,在各个领域发挥着越来越重要的作用。开发一款能够自动发送国际短信的工具,不仅能够帮助企业实现精准营销、客户服务,还能为个人提供便捷的跨国交流方式。本文将围绕“开发自动发送国际短信的工具需要用到哪些源
  • 2024-07-02vue学习笔记5
    1.组件组成一个.vue文件是一个单文件组件(SFC)。<template><divclass="container">{{message}}</div></template><script>exportdefault{data(){return{message:"组件的组成"
  • 2024-07-01【Websocket】解析帧frame.c源码分析
    0.简介本文主要分析https://github.com/mortzdk/websocket中解析帧相关函数1.predict.h#ifndefwss_predict_h#definewss_predict_h#ifdefined(__GNUC__)||defined(__INTEL_COMPILER)/*__builtin_expect是GCC提供的一个内建函数,用于向编译器提示某个条件在大多
  • 2024-07-01前端如何用密文跟后端互通?原来那么简单!
  • 2024-07-01苹果内购的凭证验证和解密(前端和本地node服务)
    苹果内购的凭证验证和解密最近在搞苹果内购,是使用微信提供的Dount提供的小程序转成APP。苹果内购使用的也是他们封装好的js接口,然后后端在解析我传递的支付凭证的时候他一直解析不成功然后我坚信自己的传递参数没有问题,我就自己使用node写了一个本地服务去验证我的支付凭证
  • 2024-07-01rabbitmq 启动报错 unknown exchange type ‘x-delayed-message‘
    产生问题的原因rabbitmq中默认只有四中交换机类型:headers、direct、fanout、topic。所以我们需要自己安装一个x-delayed-message类型的交换机x-delayed-message的安装1、下载插件点击,下载rabbitmq_delayed_message_exchange-3.8.0.ez。2、将下载的包放到/RABBIT_HOME/plugin
  • 2024-07-011、变量和简单数据类型
    1.1变量的命名和适用①必须是字母,数字,下划线。不能数字开头message="xxxx"1_message="xxxx"(不行)_message="xxx"0="xxx"(不行)②常变量名之间不能有空格greetingmessage="xxx"(不行)greeting_message="xxx"③不能用
  • 2024-07-01vue学习笔记4
    1.数组变化侦测<template><div>数组变化侦听</div><buttonv-on:click="addListHandler">添加数据</button><ul><liv-for="(item,index)innames":key="index">{{item}}</li></ul><
  • 2024-06-24python创建websocket服务器,实现循环发送消息
    WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web
  • 2024-06-24flask 闪现(flash)
    闪现(flash)flask中得闪现存放数据的地方,一旦取了,数据就没了实现跨请求间传递数据基本使用设置:flash('欢迎你')取:get_flashed_messages()fromflaskimportFlask,request,render_template,redirect,flash,get_flashed_messagesapp=Flask(__name__)app.debug
  • 2024-06-23【Gradio】Chatbot | 如何使用 Gradio Blocks 创建自定义聊天机器人
    简介重要提示:如果您刚开始接触,我们建议使用 gr.ChatInterface 来创建聊天机器人——它是一个高级抽象,使得可以快速创建漂亮的聊天机器人应用程序,往往只需一行代码。在这里了解更多信息。本教程将展示如何使用Gradio的低级BlocksAPI从头开始制作聊天机器人UI。这将使
  • 2024-06-21Spring Boot 实现优雅的参数校验
    前言在日常的Web开发中,请求参数校验是一个非常基础且重要的环节。通过校验,我们可以确保每次接口请求中,入参的数据是有效、安全且合规的,避免数据库中出现脏数据。手动校验参数原始的手动校验参数代码如下:@PostMapping("/test")@ApiOperationLog(description="测试
  • 2024-06-21rabbitMQ实战生产者-交换机-队列-消费者细谈
     生产者rabbitmq的配置创建交换机,创建queue,绑定交换机的routingkey到queue一,默认的exchange列表 二,将exchange的routingkey绑定到queue 三,生产端关心消息将发放哪个交换机,哪个routingkey,也可以用通配符(如calc.*,calc.#)匹配相应的routingkey mq服务匹配exchange,rout
  • 2024-06-21spring整合openAI大模型之Spring AI
    文章目录一、SpringAI简介1.什么是SpringAI2.SpringAI支持的大模型类型(1)聊天模型(2)文本到图像模型(3)转录(音频到文本)模型(4)嵌入模型(5)矢量数据库3.SpringAI版本二、SpringAI框架使用,对接OpenAI1.环境信息2.初始化3.配置文件(1)application.yml(2)pom文件4.聊天代码测试(1)聊天接