From 8db5b45c853fe5e49f2bca9047ea63e739cb8d79 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期六, 25 五月 2024 08:21:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java | 50 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 32 insertions(+), 18 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java index fcd2a10..b10efb4 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java @@ -1,28 +1,35 @@ package com.mes.tools; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.stereotype.Component; - -import javax.websocket.*; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.websocket.OnClose; +import javax.websocket.OnError; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; + +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.stereotype.Component; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; + @ServerEndpoint(value = "/api/talk/{username}") -@Component("webSocketServer") +@Component public class WebSocketServer { // @Autowired // HomeMapper homeMapper; - public static ConfigurableApplicationContext applicationContext; + static ConfigurableApplicationContext applicationContext; // 瑙e喅鏃犳硶娉ㄥ叆mapper闂 //浣跨敤鏂规硶 // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class); @@ -38,7 +45,7 @@ public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>(); String username; - Session session; + public Session session; public WebSocketServer() { this.messages = new ArrayList<>(); @@ -58,6 +65,15 @@ sessionMap.put(username, arrayListwebserver); } else { webSocketServers.add(this); + // Short i=0; + // for (WebSocketServer webSocketServer : webSocketServers) { + // if(webSocketServer==this){ + // i++; + // } + // } + // if(i==0){ + // webSocketServers.add(this); + // } } log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size()); @@ -81,15 +97,15 @@ public void onClose(Session session, @PathParam("username") String username) { List<WebSocketServer> webSocketServers = sessionMap.get(username); ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>(); - if (webSocketServers.size() > 1) { + if (webSocketServers.size()>1) { for (WebSocketServer webSocketServer : webSocketServers) { - if (webSocketServer != this) { + if(webSocketServer!=this){ arrayListwebserver.add(webSocketServer); } } sessionMap.put(username, arrayListwebserver); log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size()); - } else { + }else{ sessionMap.remove(username); log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size()); } @@ -157,6 +173,4 @@ public void clearMessages() { messages.clear(); } - - } -- Gitblit v1.8.0