websocket集成文档

news/2024/11/29 5:31:18/

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/news/1446220.html

相关文章

Anomalib:用于异常检测的深度学习库!

大家好,今天给大家介绍了一个用于无监督异常检测和定位的新型库:anomalib,Github链接:https://github.com/openvinotoolkit/anomalib 简介 考虑到可重复性和模块化,这个开源库提供了文献中的算法和一组工具,以通过即插即用的方法设计自定义异常检测算法。 Anomalib 包…

2.9 VM17虚拟机安装Centos系统和docker

VM17虚拟机安装Centos系统和docker 目录一、windows11安装VMware Workstation17虚拟机二、使用VM17虚拟机安装Centos(Linux)系统1. 镜像下载三、Centos系统安装docker1. 终端切换root权限2. 卸载旧版本的 Docker(新系统或者没安装过docker就跳过)3. 安装 Docker4. 配置 Docke…

spring获取controller参数过程

handler在调度controller的方法之前会对HTTP参数和上下文进行解析&#xff0c;将其转换为控制器所需参数&#xff0c;然后传递给控制权。 有四种参数&#xff1a; 查询参数&#xff08;Query Parameters&#xff09;在url后面的&#xff1f;后的参数 https://example.com/sear…

分享一个网站实现永久免费HTTPS访问的方法

免费SSL证书作为一种基础的网络安全工具&#xff0c;以其零成本的优势吸引了不少网站管理员的青睐。要实现免费HTTPS访问&#xff0c;您可以按照以下步骤操作&#xff1a; 一、 选择免费SSL证书提供商 选择一个提供免费SSL证书的服务商。如JoySSL&#xff0c;他们是国内为数不…

费曼学习法个人总结-1

2024年4月27日 1&#xff0c;知道它叫什么和懂得它是什么是两件事&#xff0c;要了解事物的本质&#xff0c;不应该只是了解名字。 2&#xff0c;输出倒逼输入。 3&#xff0c;实施的5步骤 调整心态&#xff0c;开始行动指定目标&#xff0c;养成习惯找对方法&#xff0c;高…

你用过最好用的AI工具有哪些?【模板】

你用过最好用的AI工具有哪些&#xff1f; 简介&#xff1a;探讨人们在使用AI工具时&#xff0c;最喜欢的和认为最好用的工具是哪些&#xff0c;展示AI技术的实际应用和影响。 提醒&#xff1a;在发布作品前&#xff0c;请把不需要的内容删掉。 方向一&#xff1a;常用AI工具 提…

Go 语言变量

变量来源于数学&#xff0c;是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成&#xff0c;其中首个字符不能为数字。 声明变量的一般形式是使用 var 关键字&#xff1a; var identifier type 可以一次声…

【论文速读】|理解基于大语言模型的模糊测试驱动程序生成

本次分享论文&#xff1a;Understanding Large Language Model Based Fuzz Driver Generation 基本信息 原文作者&#xff1a;Cen Zhang, Mingqiang Bai, Yaowen Zheng, Yeting Li, Xiaofei Xie, Yuekang Li, Wei Ma, Limin Sun, Yang Liu 作者单位&#xff1a;南洋理工大学…