websocket集成文档

embedded/2024/11/14 20:51:11/

1.添加依赖

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

2.添加配置

@Configuration
public class WebSocketConfig {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

3.添加websocket处理器

@Setter@Getter
@ServerEndpoint("/{token}")
@Component
public class WebSocketServer {private Session session;public static ConcurrentHashMap<String,Session> clients = new ConcurrentHashMap<>();/*** 浏览器和服务器在建立连接* @param session* @param token*/@OnOpenpublic void onOpen(Session session, @PathParam( "token") String token){System.out.println("客户端连接===>"+token);clients.put(token,session);}/*** 客户端发送消息* @param message* @param token*/@OnMessagepublic void onMessage(String message, @PathParam( "token") String token){System.out.println("客户端:"+token+",发送消息:"+message);//发送消息clients.get(token).getAsyncRemote().sendText(message);}/*** 浏览器和服务器之间断开连接之后会调用此方法.* @param token*/@OnClosepublic void onClose(@PathParam( "token") String token){System.out.println("客户端:"+token+",断开连接");//删除关系clients.remove(token);}/*** 通讯异常触发该事件* @param error*/@OnErrorpublic void onError(Throwable error) {error.printStackTrace();}
}

4.提供接口获取浏览器发送的消息

@RestController
public class MsgContoller {@RequestMapping("/sendMsg")public String sendMsg(String token,String msg) throws IOException {Session session = OrderWebSocketServer.clients.get(token);session.getBasicRemote().sendText(msg);return "发送成功";}
}

http://www.ppmy.cn/embedded/27619.html

相关文章

map和set

set就是key模型的搜索树 map就是key_value模型的搜索树 但是他们的底层不是搜索二叉树&#xff0c;是AVL树和红黑树&#xff01; map和set insert不会迭代器失效 erase会迭代器失效 文章目录 1.set1.1 set及使用1.2 multiset及使用 2.map2.1 map及使用2.2 multimap及使用 3.关于…

go语言数据类型转换

go语言数据类型转换 golang不会对数据进行隐式的类型转换&#xff0c;只能手动去执行转换操作&#xff0c;表达式T(v)将值v转换为类型T T : 就是数据类型 V : 就是需要转换的变量一、数值类型转换 数值间转换的时候建议从小范围转换成大范围&#xff0c;比如int8转int16&…

如何解决网络应用运行中的审核问题【系列研究预告】

目前互联网是非常发达的&#xff0c;但是随着技术的发展&#xff0c;有些问题逐渐变得严重。对于一般企业而言&#xff0c;一个比较重要的问题就是审核准确性和成本问题。 比如知乎的审判官&#xff0c;我本人是最早的一批审判官&#xff0c;然而多年下来的经历却很让人感到无…

C/C++中的整数除法运算与汇编指令DIV和IDIV

本节课在线视频学习&#xff1a; ​https://pan.quark.cn/s/f3895bf80861 整数除法在C和C中是一个常见操作&#xff0c;通常使用​​/​​运算符来执行。然而&#xff0c;当我们深入到汇编语言层面&#xff0c;处理器使用DIV和IDIV指令来处理无符号和有符号整数除法。在这个过…

R和Python市场篮分析算法及行为分析模型

&#x1f3af;要点 行为数据分析&#xff1a;&#x1f3af;线性统计研究生学业表现&#xff1a;&#x1f58a;绘制测试分数配对图 | &#x1f58a;构建简单线性回归模型&#xff0c;拟合数据 | &#x1f58a;构建多线性回归&#xff0c;三维可视化数据拟合模型 | &#x1f58a…

Tomact安装配置及使用(超详细)

文章目录 web相关知识概述web简介(了解)软件架构模式(掌握)BS&#xff1a;browser server 浏览器服务器CS&#xff1a;client server 客户端服务器 B/S和C/S通信模式特点(重要)web资源(理解)资源分类 URL请求路径(理解)作用介绍格式浏览器通过url访问服务器的过程 服务器(掌握)…

STM32 外部中断的理解

以下代码是一个“对射式红外传感器计次”&#xff0c;实现的功能是&#xff0c;通过隔档对射式红外传感器&#xff0c;产生中断&#xff0c;在中断中计数&#xff08;显示在OLED上&#xff09;&#xff0c;本篇以此代码&#xff0c;大致了解下STM32中断代码编写的方式。 #incl…

JAVA: Spring Boot加载 Shiro 配置 >>找不到 SecurityManager

在 Spring Boot 应用中集成和配置 Apache Shiro 通常涉及创建一个配置类来设置 SecurityManager&#xff0c;以及定义 Shiro 的 Web 支持和必要的安全策略。下面是使用 Spring Boot 配置 Apache Shiro 的步骤&#xff1a; ### 1. 添加依赖 首先&#xff0c;确保在你的 pom.xml…