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

        }
    }

}
相关推荐
扑克中的黑桃A5 分钟前
Python 如何获取 request response body
java
用户307429716715812 分钟前
Spring AI 评估-优化器模式完整指南
java·spring boot
扑克中的黑桃A12 分钟前
Spring Mvc + Easyui中根据查询结果导出文件
java
BillKu19 分钟前
【前后前】导入Excel文件闭环模型:Vue3前端上传Excel文件,【Java后端接收、解析、返回数据】,Vue3前端接收展示数据
java·前端·excel
用户05956611920925 分钟前
现代化 Java 企业级应用分层开发架构设计最佳实践
java·架构·全栈
代码or搬砖28 分钟前
Spring AOP全面详讲
java·spring
Musennn35 分钟前
leetcode51.N皇后:回溯算法与冲突检测的核心逻辑
java·数据结构·算法·leetcode
TT哇36 分钟前
【数据结构试题】
java·数据结构
嗜好ya39 分钟前
JAVA集合篇--深入理解ConcurrentHashMap图解版
java·开发语言
stein_java43 分钟前
springMVC-15 异常处理
java·spring