humuyu 3 rokov pred
rodič
commit
a491fd9650

+ 16 - 2
eladmin-system/src/main/java/me/zhengjie/base/websocket/SocketEventListenner.java

@@ -115,7 +115,18 @@ public class SocketEventListenner {
 			param.put("pcSname", list);
 			UUID sessionId = client.getSessionId();
 			// 移除用户
-			pcSocketClientCache.deleteSname(pcSname);
+			HashMap<UUID, SocketIOClient> socketIOClient = pcSocketClientCache.getUserClient(pcSname);
+			if (socketIOClient != null) {
+				Collection<SocketIOClient> collection = socketIOClient.values();
+				for (SocketIOClient ioClient : collection) {
+					ioClient.sendEvent("logoutEvent", "close");
+				}
+				for (SocketIOClient ioClient : collection) {
+					ioClient.disconnect();
+				}
+				pcSocketClientCache.deleteSname(pcSname);
+			}
+
 			pcSocketClientCache.saveClient(pcSname, sessionId, client);
 			log.info("将sname注册到websocket里面:" + pcSname);
 		} else {
@@ -126,7 +137,10 @@ public class SocketEventListenner {
 				for (SocketIOClient ioClient : collection) {
 					ioClient.sendEvent("logoutEvent", "close");
 				}
-				client.disconnect();
+				for (SocketIOClient ioClient : collection) {
+					ioClient.disconnect();
+				}
+				pcSocketClientCache.deleteSname(pcSname);
 			}
 		}
 	}