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

news2024/11/15 15:37:15

目录

一、准备

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
     */
    @Bean
    public 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 {

    @OnOpen
    public void onOpen(Session session,String username) {
        // 连接刚建立时的处理逻辑
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        // 接收到消息时的处理逻辑
    }

    @OnClose
    public void onClose(Session session) {
        // 连接关闭时的处理逻辑
    }

    @OnError
    public void onError(Throwable error) {
        // 发生错误时的处理逻辑
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于TF-IDF+Tensorflow+PyQt+孪生神经网络的智能聊天机器人(深度学习)含全部Python工程源码及模型+训练数据集

目录 前言总体设计系统整体结构图系统流程图孪生神经网络结构图 运行环境Python 环境TensorFlow 环境 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 模型应用 系统测试1. 训练准确率2. 测试效果3. 模型生成 工程源代码下载其它资料下载 前言 本项目利用TF-IDF&…

[VUE学习】从头搭建权限管理系统前端-初始化

1.安装Node 2.安装Vue Cli vue的一个脚手架 npm install -g vue/cli 3.vue ui搭建vue项目 cmd 运行 vue ui 然后创建新项目 选择npm 选择配置 Babel 是编译的 Router 是路由 vuex 是状态保存的 Linter/fomatter 代码检测和格式化 创建完成 这个时候 代码在我们本地…

Spring Boot 中的 Criteria 是什么,如何使用?

Spring Boot 中的 Criteria 是什么&#xff0c;如何使用&#xff1f; 介绍 Spring Boot 是一个流行的 Java Web 开发框架&#xff0c;它提供了一些强大的工具和库&#xff0c;使得开发 Web 应用程序变得更加容易。其中之一是 Criteria API&#xff0c;它提供了一种类型安全的…

电脑免费简单又好用的记事本app软件推荐

很多职场人士在办公时都需要用到电脑&#xff0c;在电脑上有很多好用的工具软件可以用来辅助工作的展开&#xff0c;其中记事本类的App就有不少优质软件存在。那电脑免费简单又好用的记事本app软件推荐哪些呢&#xff1f;这里小编就以自己的Windows10电脑为例&#xff0c;为大家…

山西电力市场日前价格预测【2023-07-09】

日前价格预测 预测明日&#xff08;2023-07-09&#xff09;山西电力市场全天平均日前电价为386.09元/MWh。其中&#xff0c;最高日前价格为505.65元/MWh&#xff0c;预计出现在21: 30。最低日前电价为286.38元/MWh&#xff0c;预计出现在13: 30。 以上预测仅供学习参考&#x…

ModaHub魔搭社区:向量数据库Zilliz Cloud向量搜索和查询教程(一)

目录 概述 开始前 单向量搜索 本文介绍如何在 Zilliz Cloud 中执行近似最近邻&#xff08;Approximate Nearest Neighbour&#xff0c;ANN&#xff09;搜索和查询。搜索是指在 Collection 中查找与指定查询向量最接近的向量&#xff0c;查询是基于指定条件筛选出满足条件的数…

一文看懂ChatGPT与存算一体化

ChatGPT开启大模型“军备赛”&#xff0c;存储作为计算机重要组成部分明显受益: ChatGPT开启算力军备赛&#xff0c;大模型参数呈现指数规模&#xff0c;引爆海量算力需求&#xff0c;模型计算量增长速度远超人工智能硬件算力增长速度&#xff0c;同时也对数据传输速度提出了…

mysql练习---对表进行插入、更新与删除

环境&#xff1a; 第一题 (1) 创建表 create table pet( name varchar(20) not null comment 宠物名称, owner varchar(20) comment 宠物主人, species varchar(20) not null comment 种类, sex char not null comment 性别, birth year not null comment 出生日期, death …

HTML转EXE工具(23.7.7.0)使用说明

目录 一、注册账号和不注册有什么区别&#xff1f; 二、如何注册账号&#xff1f; 三、如何自定义about框&#xff1f; 四、如何选择打包网站还是Web项目&#xff1f; 五、如何设置程序基本信息&#xff1f; 六、什么是程序启动最大化和无标题&#xff1f; 七、程序生成…

Android之内存泄漏与内存溢出

Android之内存泄漏与内存溢出 概览 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;是指程序在申请内存后&#xff0c;无法释放已申请的内存空间&#xff0c;导致系统无法及时回收内存并且分配给其他进程使用。通常少次数的内存无法及时回收并不会到程序造成什么影响…

快讯|​2023 FOX Upfront 主打 Tubi

在每月一期的 Tubi 快讯中&#xff0c;你将全面及时地获取 Tubi 最新发展动态&#xff0c;欢迎关注【比图科技】&#xff0c;一起成长变强&#xff01; 2023 FOX Upfront 主打 Tubi 2023 年 5 月 15 日&#xff0c;FOX 在纽约曼哈顿中心举行一年一度的 FOX Upfront&#xff0c…

行业追踪,2023-07-03,汽车零部件开始调整,继续跟踪等待参与第二波行情吧

自动复盘 2023-07-03 成交额超过 100 亿 排名靠前&#xff0c;macd柱由绿转红 成交量要大于均线 有必要给每个行业加一个上级的归类&#xff0c;这样更能体现主流方向 rps 有时候比较滞后&#xff0c;但不少是欲杨先抑&#xff0c; 应该持续跟踪&#xff0c;等 macd 反转时参与…

【通览一百个大模型】FLAN(Google)

【通览一百个大模型】FLAN&#xff08;Google&#xff09; 作者&#xff1a;王嘉宁&#xff0c;本文章内容为原创&#xff0c;仓库链接&#xff1a;https://github.com/wjn1996/LLMs-NLP-Algo 订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干…

pytorch学习指南---安装anaconda ,pytorch

pytorch 和tenserflow并驾齐驱&#xff0c;但是&#xff0c;pytorch更好理解。所以选择学习pytorch。 安装anaconda&#xff1a; https://blog.csdn.net/fan18317517352/article/details/123035625 教程&#xff1a;bilibili up主&#xff1a;一只小土堆 构建pytorch空间 py…

密码学学习笔记(九):Public-Key Encryption - 公钥加密2

Rivest-Shamir-Adleman (RSA) - 经典非对称加密算法 如果我们知道&#x1d45d;, &#x1d45e; &#xff08;即&#x1d441; &#x1d45d;&#x1d45e;) 我们可以在mod N中进行反幂运算。 比如&#xff1a; 我们有一个单向陷门函数&#xff0c;非常适合加密。 “教科书式”…

【2023年成都七中NOIP联赛】游记

Day 1&#xff1a; 8:30&#xff1a; 睡懒觉&#xff0c;一觉睡到 8:30&#xff0c;“嘟嘟嘟”的电话声响起&#xff0c;迷迷糊糊睁开眼睛&#xff0c;快点&#xff0c;去成都七中…… 没错&#xff0c;我连今天要考试都不知道&#xff08;其实昨天老师给我发了消息的&#…

算法 | 滑动窗口算法笔记

滑动窗口&#xff1a;核心思想 核心思想&#xff1a;维护一个窗口&#xff08;又叫做子区间&#xff09;&#xff0c;通过调整窗口的起始位置&#xff08;start&#xff09;和终止位置&#xff08;end&#xff09;&#xff0c;来寻找符合特定条件的子区间。 滑动窗口算法常常…

包管理器 | 浅谈几个常用的包管理工具

目录 &#x1f5a5;️ 前言 ◼️ npm ◼️ cnpm ◼️ yarn ◼️ pnpm ◼️ Bower &#x1f5a5;️ 参考文献 &#x1f5a5;️ 参考资料 &#x1f5a5;️ 前言 如果你是前端开发者&#xff0c;或多或少都会接触到一些包管理工具&#xff0c;包管理工具是用于持续自动化…

17.OpenCV中的GFTTDetector类

文章目录 GFTTDetector功能OpenCV中GFTTDetector类reference 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 这是使用imgproc.hpp中的goodFeaturesToTrack函数封装的类&#xff0c;其使用和goodFeaturesToTrack函数基本相似。 GFTTDetec…

wps如何加载mathtype和Endnote

为了支持国产化软件&#xff0c;弃用office套装&#xff0c;现在改用wps办公软件&#xff0c;但是写作科技论文的时候还是会出现很多的不方便&#xff0c;比如文献引用、公式排版编号等等。尽管wps自带了公式编辑器&#xff0c;然鹅这可太不方便了&#xff0c;因此把几个技巧总…