使用Java技术WebSocket创建聊天、群聊,实现好友列表,添加好友,好友分组,聊天记录查询功能。
文章目录
- 引入依赖
- 主要代码
- 配置WebSocket
- 创建通讯
- 完整后台项目代码下载
WebSocket的由来:
之前只有一个http协议,http协议是请求响应,存在缺陷,就是请求只能由客户端发起,然后请求到服务器,服务器做响应,但是如果服务器状态做了改变,客户端并不能即使的更新,之前的是按照轮询的方法解决,轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。因此为了解决这个问题WebSocket 就出现了。
WebSocket简介:
服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。客户端请求建立连接,然后服务端收到消息,此次通讯并不会断开,而是一直连接,这样后端也能主动的发送数据到客户端。
引入依赖
<!--websocket-->
相关文章:
使用Java技术WebSocket创建聊天、群聊,实现好友列表,添加好友,好友分组,聊天记录查询功能。
文章目录 引入依赖主要代码配置WebSocket创建通讯完整后台项目代码下载WebSocket的由来: 之前只有一个http协议,http协议是请求响应,存在缺陷,就是请求只能由客户端发起,然后请求到服务器,服务器做响应,但是如果服务器状态做了改变,客户端并不能即使的更新,之前的是按照…...
【Redis07】Redis基础:Bitmap 与 HyperLogLog 相关操作
Redis基础学习:Bitmap 与 HyperLogLog 相关操作继续进行 Redis 基础部分的学习,今天我们学习的是两种另外的数据类型。说是数据类型,但其实它们实际上使用的都是 String 类型做为底层基础,只不过是在存储的时候进行了一些特殊的操…...
华为路由器 VRRP主备配置
组网需求 如下图所示,PC1通过SW1双归属到R1和R2。为保证用户的各种业务在网络传输中不中断,需在R1和R2上配置VRRP主备备份功能。 正常情况下,主机以R1为默认网关接入Internet,当R1故障时,R2接替R1作为网关继续进行工作…...
docker容器安装ES
1.拉取镜像 docker pull elasticsearch:6.5.42.修改别名 docker tag [容器ID] es65:6.5.42.启动应用 docker run -it -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS"-Xms128m -Xmx128m" es65:6.5.43.拷贝配置文件到宿主机 docker cp es:/usr/share/ela…...
Python Module — prompt_toolkit CLI 库
目录 文章目录目录prompt_toolkit示例化历史记录热键自动补全多行输入Python 代码高亮自定义样式prompt_toolkit prompt_toolkit 是一个用于构建 CLI 应用程序的 Python 库,可以让我们轻松地构建强大的交互式命令行应用程序。 自动补全:当用户输入命令…...
springboot mybatis-plus 调用 sqlserver 的 存储过程 返回值问题
问题: 在使用 mybatis-plus 调用sqlserver 存储过程 没有返回值 经过资料查找 注意点 此处使用Map传参,原因在于存储过程的返回值,通常在参数定义中实现,如In 入参、out 出参。 这样当执行后有结果返回时,则可以将结…...
【0180】PG内核读取pg_hba.conf并创建HbaLine记录(1)
文章目录 1. pg_hba.conf文件是什么?2. postmaster何时读取pg_hba.conf?2.1 pg内核使用pg_hba.conf完成客户端认证的原理2.2 读取pg_hba.conf的几个模块3. pg内核读取pg_hba.conf过程3.1 VFD机制获取文件描述符3.2 根据fd读取文件内容相关阅读: 【0178】DBeaver、pgAdmin I…...
【原型设计工具】上海道宁为您提供Justinmind,助力您在几分钟内形成原型,并现场测试,无需编写任何代码
Justinmind是用于 Web和应用程序的原型制作工具 在几分钟内形成原型 并在现场进行测试 无需编写任何代码 单击一下即可轻松在线获取您的设计 并与整个团队共享 享受高效的沟通和快速反馈 以实现持续改进和利益相关者的支持 开发商介绍 JustinMind是由西班牙JustinMind公…...
计算机网络中---HDLP协议和PPP协议
目录 HDLC协议PPP协议HDLC协议和PPP协议HDLC协议 HDLC协议【高级数据链路控制协议】是一种数据链路层协议,用于在两个节点之间传输数据。以下是HDLC协议的重点知识: HDLC协议定义了一种标准的帧格式,包括起始标志、地址字段、控制字段、信息字段、校验字段和结束标志。HDLC…...
k8s之节点kubelet预留资源配置
k8s之kubelet预留资源配置1 前言2 预留资源Kube-reservedSystem-reservedEviction Thresholds实施节点可分配约束3 Pod优先级4 生产应用配置文件重启kubelet服务查看节点资源1 前言 最近k8s在使用过程中遇到这样一个问题 由于Pod没有对内存及CPU进行限制,导致Pod在…...
机器学习笔记之前馈神经网络(四)反向传播算法[数学推导过程]
机器学习笔记之前馈神经网络——反向传播算法[数学推导过程]引言回顾:感知机算法非线性问题与多层感知机反向传播算法(BackPropagation,BP\text{BackPropagation,BP}BackPropagation,BP)场景构建求解各权重更新量图示描述反向传播过程总结引言 上一节介绍了M-P\tex…...
vscode+elementui校园跑腿系统 nodejs+vue
本系统从用户的角度出发,结合当前的校园环境而开发的,在开发语言上是使用的Java语言,在框架上我们是使用的Vue框架,数据库方面使用的是MySQL数据库,开发工具为IDEA。 基于Vue的校园跑腿管理系统中的管理员配送用户都可…...
[蓝桥杯单片机8]定时器的简单应用
1、本实验内容 利用51单片机的定时/计数器T0的模式1实现间隔定时,每隔1秒L1指示灯闪烁一下,也就是点亮0.5秒,熄灭0.5秒;每隔2秒L8指示灯闪烁一下,即点亮1秒,熄灭1秒。2、基础知识 定时/计数器,是…...
node-HTTP协议
文章目录一. 概念二. 请求报文的组成三.HTTP请求行四.HTTP请求头五.HTTP的请求体六.响应报文的组成七.创建HTTP服务八.获取HTTP请求报文九.HTTP设置响应十.GET和POST请求的区别一. 概念 HTTP协议. 中文叫超文本传输协议; 是一种基于TCP/IP的应用层通信协议; 这个协议详细规定了…...
基于springboot+vue的地方美食分享网站
081-springboot基于vue的地方美食分享网站开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&am…...
【Android】之【Aplication】
一、Application简介 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。 Android系统自动会为每个程序运行时创建一个Application类的对象且只创建…...
社区之声|Grant Program支持Moonbeam生态壮大
在本次社区之声会议中,Moonbeam基金会解释生态系统Grant流程、一个由社区成员组成的圆桌讨论表达各自对此次Grant的看法,Moonbeam开发者关系工程师演示了如何在Snapshot对申请生态系统Grant项目的投票。观看视频回顾 请注意,内容仅供参考&am…...
GO实现Redis:GO实现Redis协议解析器(2)
本文实现Redis的协议层,协议层负责解析指令,然后将指令交给核心database执行echo database用来测试协议层的代码https://github.com/csgopher/go-redis RESP协议 RESP是客户端与服务端通信的协议,格式有五种:正常回复࿱…...
Geoserver 发布wmts服务,以及cesium加载发布的wmts服务
WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性&am…...
【微信小程序】selectComponent(#id)失败得到是null分析
小程序中无法像网页中轻易的获取DOM元素,需要依靠 this.selectComponent(#id)this.selectAllComponents(#id) 本文主要针对 this.selectComponent 获取DOM元素失败的原因 下面开始正文 上图为我的业务代码,由图可知,通过for循环遍历渲染ca…...
FreeRTOS任务通知:轻量级任务通信机制的原理与应用实践
1. 项目概述:从“消息队列”到“任务通知”的思维跃迁在嵌入式实时操作系统(RTOS)的开发中,任务间的通信与同步是核心议题。我们习惯了使用队列(Queue)、信号量(Semaphore)、事件组&…...
告别复制粘贴!用Keil MDK 5.27为GD32F450搭建专属工程模板(附完整文件结构)
打造高效嵌入式开发工作流:基于Keil MDK 5.27的GD32F450工程模板设计指南 在嵌入式开发领域,重复劳动是效率的最大敌人。每次启动新项目时,开发者往往需要花费大量时间在基础环境搭建、文件结构组织和编译配置上。这种低效的工作模式不仅消耗…...
保姆级教程:在Ubuntu 22.04上用ROS2 Humble和Gazebo搞定TurtleBot3仿真(从安装到建图导航)
保姆级教程:在Ubuntu 22.04上用ROS2 Humble和Gazebo搞定TurtleBot3仿真(从安装到建图导航) 机器人操作系统(ROS)正在重塑现代机器人开发流程。作为ROS2的最新长期支持版本,Humble Hawksbill为开发者带来了更…...
可穿戴设备电池选型与电源管理实战指南
1. 项目概述:为什么可穿戴设备的电池选型是个技术活 做可穿戴电子项目,无论是智能手环、发光服饰还是互动饰品,最让人头疼的往往不是代码和电路,而是最后那一步: 怎么给它供电 。你可能花了好几天调通了传感器和灯带…...
基于大语言模型的强化学习奖励函数自动生成:text2reward项目实践指南
1. 项目概述:从文本指令到强化学习奖励的桥梁最近在折腾强化学习项目时,一个老问题又冒出来了:怎么设计一个既精确又高效的奖励函数?传统方法要么是工程师凭经验手写一堆规则,复杂场景下容易顾此失彼;要么依…...
怎样快速删除背景?2026年免费工具实测对比,找到最简单的抠图方法
图片背景删除已经成为日常工作中的常见需求——无论是制作证件照、电商商品图,还是社交媒体头像,都离不开一个靠谱的背景去除工具。但市面上的工具五花八门,从专业软件到在线应用,从手机App到小程序,到底哪个才是最简单…...
Dingo与Go模块:无缝集成现有Go项目的实用技巧
Dingo与Go模块:无缝集成现有Go项目的实用技巧 【免费下载链接】dingo A meta-language for Go that adds Result types, error propagation (?), and pattern matching while maintaining 100% Go ecosystem compatibility 项目地址: https://gitcode.com/gh_mi…...
[GESP202512 C++ 三级] 选择题第 8 题 ← unsigned int
【题目描述】 在一个特定的计算机系统中,假如 unsigned int 类型需要占用2个字节的存储空间(每个字节有8位),则 unsigned int 可以表示的数据范围是( A ) A. 0 ~ 65535 B. 0 ~ 65536 C. -65536 ~ 655…...
Atmosphere-stable:Nintendo Switch自制系统的技术架构深度剖析与实战指南
Atmosphere-stable:Nintendo Switch自制系统的技术架构深度剖析与实战指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 在Nintendo Switch自制系统领域,Atmosphe…...
Go语言开发利器:gocode代码补全与定义跳转原理与实践
1. 项目概述:一个为Go语言开发者准备的“瑞士军刀”如果你是一名Go语言开发者,或者正在学习Go,那么你一定遇到过这样的场景:在阅读一个开源项目时,面对一个陌生的函数或方法,你迫切想知道它的定义在哪里、它…...
