Java 使用websocket

添加依赖

xml 复制代码
<!-- WebSocket 支持 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

添加配置类

java 复制代码
@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }
}

添加服务类

java 复制代码
@Component
@ServerEndpoint("/ws/{clientId}")
public class WebSocketServer {

    private static Map<String, Session> sessionMap = new HashMap<>();

    @OnOpen
    public void onOpen(Session session, @PathParam("clientId") String clientId) {
        System.err.println("客户端:" + clientId + "建立连结");
        sessionMap.put(clientId, session);
    }

    @OnClose
    public void onClose(@PathParam("clientId") String clientId) {
        sessionMap.remove(clientId);
    }

    /**
     * 收到客户端消息后调用的方法
     *
     * @param message  客户端发送过来的消息
     * @param clientId
     */
    @OnMessage
    public 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();
            }

        }
    }

}
相关推荐
Xzh04231 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
艾利克斯冰2 小时前
Java 设计模式-行为型模式(更新中)
java·开发语言·设计模式
倒霉蛋小马2 小时前
Java新特性:record关键字
java·开发语言
折哥的程序人生 · 物流技术专研2 小时前
《Java 100 天进阶之路》第95篇:消息队列基础(RocketMQ/Kafka)(2026版)
java·面试·kafka·rocketmq·java-rocketmq·求职招聘
budingxiaomoli2 小时前
Spring日志
java·开发语言
IT空门:门主2 小时前
Spring 注入三剑客:@Resource、@Autowired、@RequiredArgsConstructor 到底该用哪个?
java·后端·spring
Sam_Deep_Thinking3 小时前
Spring Boot 的启动原理是什么?
java·spring boot·后端
南部余额3 小时前
Spring WebClient 从入门到精通
java·后端·spring
CodeStats3 小时前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
摇滚侠3 小时前
Spring 零基础入门到进阶 基于注解管理 Bean 38-43
xml·java·后端·spring·intellij-idea