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