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