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();
            }

        }
    }

}
相关推荐
SunnyDays10112 分钟前
Java实战指南:如何高效将PDF转换为高质量TIFF图片
java·pdf转tiff
Seven975 分钟前
【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite
java
Yeh2020587 分钟前
maven
java·maven
色空大师7 分钟前
【java打包方式详解】
java·开发语言·部署·打包·启动脚本·jar包分离
人道领域8 分钟前
2026年Java后端热点全景解析:从LTS革新到云原生跃迁
java·开发语言
鱼鳞_10 分钟前
Java学习笔记_Day26(不可变集合)
java·笔记·学习
zhaoyufei13312 分钟前
RK3566 EDP屏幕背光闪修改pwm
android·java
清心歌22 分钟前
HashMap实现原理及扩容机制
java
一只大袋鼠22 分钟前
数据库连接池从入门到精通(下):Druid 连接池使用与工具类封装
java·数据库·连接池
禹中一只鱼25 分钟前
【IDEA 出现 `IDE error occurred`】
java·ide·spring boot·intellij-idea