Java 使用websocket

news/2025/2/24 10:09:58/

添加依赖

<!-- WebSocket 支持 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

添加配置类

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

添加服务类

java">@Component
@ServerEndpoint("/ws/{clientId}")
public class WebSocketServer {private static Map<String, Session> sessionMap = new HashMap<>();@OnOpenpublic void onOpen(Session session, @PathParam("clientId") String clientId) {System.err.println("客户端:" + clientId + "建立连结");sessionMap.put(clientId, session);}@OnClosepublic void onClose(@PathParam("clientId") String clientId) {sessionMap.remove(clientId);}/*** 收到客户端消息后调用的方法** @param message  客户端发送过来的消息* @param clientId*/@OnMessagepublic void onMessage(String message, @PathParam("clientId") String clientId) {System.err.println("收到来自客户端" + clientId + "的消息:" + message);}public void sendMessage(String message) {Collection<Session> sessions = sessionMap.values();for (Session session : sessions) {try {session.getBasicRemote().sendText(message);} catch (Exception e) {e.printStackTrace();}}}}

http://www.ppmy.cn/news/1574606.html

相关文章

HAProxy介绍与编译安装

目录 1、HAProxy介绍 2、HAProxy编译安装 Centos 基础环境 Ubuntu 基础环境 编译安装HAProxy 验证HAProxy版本 HAProxy启动脚本 配置文件 启动haproxy 验证haproxy状态 查看haproxy的状态页面 1、HAProxy介绍 HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年…

2024华为OD机试真题-单词接龙(C++)-E卷B卷-100分

2024华为OD机试最新题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述: 输入描述: 输出描述: 示例1 示例2 题目解析 考点 代码 c++ 题目描述: 单词接龙的规则是:可用于接龙的单词首字母必须要前一个单词的尾字母相同; 当存在多个首字母相同的单词时,取…

不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel

不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel&#xff1f; DeepSeek R1 思考 16 秒 思考过程 用户的问题是关于在Android开发中&#xff0c;不同的Activity是否应该复用同一个ViewModel还是每个Activity都创建新的。首先&#xff0c;我需要…

【HarmonyOS Next】拒绝权限二次申请授权处理

【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景&#xff1a; 在鸿蒙系统中&#xff0c;对于用户权限的申请&#xff0c;会有三种用户选择方式&#xff1a; 1.单次使用允许 2.使用应用期间&#xff08;长时&#xff09;允许 3.不允许 当用户选择不允许后&#xff0…

【C++八股】内存对⻬

内存对齐是指编译器按照特定规则安排数据在内存中的存储位置&#xff0c;以提高程序的执行效率和可移植性。 内存对齐的原因&#xff1a; 1. 性能优化&#xff1a; 现代处理器通常要求数据在内存中按照特定的边界对齐&#xff0c;以提高内存访问效率。 如果数据未对齐&#x…

Caffeine:高性能的Java本地缓存库

文章目录 引言什么是Caffeine&#xff1f;Caffeine的主要特点Caffeine的使用方法Caffeine与Google Guava Cache的对比Caffeine与Ehcache的对比总结 引言 在现代软件开发中&#xff0c;缓存是提高应用性能的重要手段之一。通过缓存&#xff0c;可以减少对数据库或其他外部系统的…

2000-2019年各省森林覆盖率数据

2000-2019年各省森林覆盖率数据 1、时间&#xff1a;2000-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、森林覆盖率(%) 4、范围&#xff1a;31省 5、指标解释&#xff1a;森林覆盖率是指森林面积占土地总面积的比率&…

DeepSeek技术全景解析:架构创新与行业差异化竞争力

一、DeepSeek技术体系的核心突破 架构设计&#xff1a;效率与性能的双重革新 Multi-head Latent Attention (MLA)&#xff1a;通过将注意力头维度与隐藏层解耦&#xff0c;实现显存占用降低30%的同时支持4096超长上下文窗口。深度优化的MoE架构&#xff1a;结合256个路由专家…