【WebSocket】SpringBoot整合WebSocket实现聊天室(一)

目录

一、准备

1、引入依赖

2、创建配置类

二、相关注解


一、准备

1、引入依赖

首先我们需要在项目中引入依赖,有两种方式。第一种我们可以在创建Spring Boot项目时搜索WebSocket然后勾选依赖

第二种是我们可以直接在项目的pom.xml文件中插入以下依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>

2、创建配置类

我们需要进行如下配置

@Configuration
public class WebSocketConfig {/***  ServerEndpointExporter 是一个Spring框架提供的类,它可以自动注册和管理WebSocket的端点。它会扫描带有 @ServerEndpoint 注解的类,并将其注册为WebSocket的端点,以便客户端可以连接和通信。** 通过将 ServerEndpointExporter 实例化为一个Spring Bean,该配置类允许自动配置和管理WebSocket端点,使得在应用程序中使用WebSocket变得更加简单和方便。* @return*/@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

ServerEndpointExporter 是一个Spring框架提供的类,它可以自动注册和管理WebSocket的端点。它会扫描带有 @ServerEndpoint 注解的类,并将其注册为WebSocket的端点,以便客户端可以连接和通信。 通过将 ServerEndpointExporter 实例化为一个Spring Bean,该配置类允许自动配置和管理WebSocket端点,使得在应用程序中使用WebSocket变得更加简单和方便。

二、相关注解

这个时候我们就可以使用,一下注解进行使用,可以参考之前的文章

【计网】WebSocket协议_1373i的博客-CSDN博客icon-default.png?t=N658https://blog.csdn.net/qq_61903414/article/details/130389150?spm=1001.2014.3001.5501

package com.example.demo.component;import org.springframework.stereotype.Component;import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;@ServerEndpoint(value = "/chat")  //路径
@Component
public class WebSocketServer {@OnOpenpublic void onOpen(Session session,String username) {// 连接刚建立时的处理逻辑}@OnMessagepublic void onMessage(String message, Session session) {// 接收到消息时的处理逻辑}@OnClosepublic void onClose(Session session) {// 连接关闭时的处理逻辑}@OnErrorpublic void onError(Throwable error) {// 发生错误时的处理逻辑}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/17998.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot整合websocket遇到的小问题

今天尝试了通过springboot整合websocket来初步学习使用websocket&#xff0c;然后发现启动的时候报错了&#xff0c;发这篇文章分享一下。 springboot整合websocket的步骤很简单&#xff1a; 第一步&#xff1a;创建一个springboot项目&#xff0c;在这里命名为websocket 在I…

div绑定键盘点击事件

为箭头绑定绑定键盘方向键 <div class"toggle-nav"><spanv-if"leftToggleSt"click"toggleGoods(1)"keyup.left"toggleGoods(1)"class"toggle-left"><a-icon type"left" class"icon" /&…

CHI read trans flow

Read transactions with DMT and without snoops 对于不产生snoop的read trans&#xff0c;建议使用DMT功能&#xff0c;如下图所示&#xff1a; 注意点&#xff1a; a. SNF并不需要给HNF回响应&#xff0c;因为RN发送的compack可以释放HNF处记录的请求; Read transaction wi…

MATLAB|考虑自动重合闸与分布式能源的配电网可靠性评估研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Leetcode】36. 有效的数独

一、题目 1、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注意:…

Element-UI 在表单通过按钮动态增加Tree树形控件

文章目录 问题背景动态增加的Tree控件创建el-tree控件数据动态增加的el-tree控件编辑数据前需进行设置勾选状态新增/编辑请求前需转换格式 问题背景 在表单中动态增加的Tree控件中&#xff0c;注册一个 ref 引用&#xff0c;报错如下&#xff1a; this.$refs[‘showRegionsTre…

spring AOP中pointcut表达式详解

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

Qt中的信号与槽(Signals and Slots)

Qt中的信号与槽&#xff08;Signals and Slots&#xff09;是一种用于对象间通信的机制&#xff0c;常用于处理用户界面事件和数据更新等情况。通过信号与槽&#xff0c;可以实现对象之间的解耦和灵活的交互。 信号&#xff08;Signal&#xff09;是对象发出的事件或通知&…

基于vscode连接到远程服务中debug

本文章主要讲解以下两点的任务 1.在windows的vscode中去debug 本机子系统wsl2中运行的docker容器 该篇文件参考知乎上这篇文章 vscode远程连接到本机 wsl2子系统 中正在运行的 docker容器&#xff0c;该docker中有一个flask实例&#xff0c;通过vscode远程debug它 1.1安装v…

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议&#xff0c;这给工业生产带来了很大的麻烦&#xff0c;因为这两种设备之间无法通讯。但是&#xff0c;远创智控YC-ECT-TCP网关的出现&#xff0c;却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…

Kubernetes —Pod 和容器日志

日志架构 应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地&#xff0c;容器引擎也被设计成支持日志记录。 针对容器化应用&#xff0c;最简单且最广泛采用的日志记录方式就是写入标准输出和标…

容器【双例集合、TreeMap容器的使用、 Iterator接口、Collections工具类】(四)-全面详解(学习总结---从入门到深化)

目录 通过元素自身实现比较规则 通过比较器实现比较规则 双例集合 TreeMap容器的使用 Iterator接口 Collections工具类 通过元素自身实现比较规则 在元素自身实现比较规则时&#xff0c;需要实现Comparable接口中的 compareTo方法&#xff0c;该方法中用来定义比较规则。T…