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

        }
    }

}
相关推荐
小雅痞2 分钟前
[Java][Leetcode middle] 54. 螺旋矩阵
java·leetcode·矩阵
ooseabiscuit8 分钟前
Laravel6.x新特性全解析
java·开发语言·后端·mysql·spring
青山师10 分钟前
Java内存模型深度解析:Happens-Before规则与内存屏障实现原理
java·spring·面试·职场和发展·java程序员·jmm
Seven9713 分钟前
万字长文背诵最新Agent常见试题
java
XiYang-DING15 分钟前
【Java EE】网络通信中的 4 种交互模式
java·java-ee·交互
xinhuanjieyi18 分钟前
vscode插件,.sec / .inc / .sc 文件添加关键字高亮
java·服务器·vscode
Mr_pyx26 分钟前
RAG知识库从零到一:简单搭建教程(java版)
java·spring·ai·rag
敲代码的瓦龙29 分钟前
Android?碎片!!!
java·开发语言·android-studio
月落归舟32 分钟前
深入解析Spring依赖注入 DI 的三种方式
java·后端·spring
亚马逊云开发者39 分钟前
Lambda 冷启动改善了,你的 Provisioned Concurrency 可能白花钱了
java