|
@@ -9,11 +9,13 @@ import thyyxxk.webserver.service.zhuyuanyisheng.emr.EmrWebSocketServer;
|
|
|
import thyyxxk.webserver.service.zhuyuanyisheng.emr.EmrWebSocketServerV2;
|
|
|
import thyyxxk.webserver.utils.ListUtil;
|
|
|
import thyyxxk.webserver.utils.TokenUtil;
|
|
|
+import thyyxxk.webserver.utils.WebsocketUtil;
|
|
|
|
|
|
import javax.websocket.*;
|
|
|
import javax.websocket.server.PathParam;
|
|
|
import javax.websocket.server.ServerEndpoint;
|
|
|
import java.io.IOException;
|
|
|
+import java.net.InetSocketAddress;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -50,9 +52,11 @@ public class WebSocketServer {
|
|
|
|
|
|
|
|
|
if (!sid.endsWith("Screen")) {
|
|
|
- SESSION_MAP.forEach((item, index) -> {
|
|
|
- if (sid.split("-")[0].equals(item.split("-")[0])) {
|
|
|
- sendMessageByWebSocketSidSingle(item);
|
|
|
+ SESSION_MAP.forEach((key, value) -> {
|
|
|
+ if (sid.split("-")[0].equals(key.split("-")[0])) {
|
|
|
+ if (!getAddress(session).equals(getAddress(value))) {
|
|
|
+ sendMessageByWebSocketSidSingle(key);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -62,6 +66,10 @@ public class WebSocketServer {
|
|
|
log.info("有新连接加入:{},当前在线人数为:{}", sid, ONLINE_COUNT.get());
|
|
|
}
|
|
|
|
|
|
+ private static String getAddress(Session session) {
|
|
|
+ return WebsocketUtil.getRemoteAddress(session).getAddress().toString();
|
|
|
+ }
|
|
|
+
|
|
|
@OnClose
|
|
|
public void onClose(Session session, @PathParam("sid") String sid) {
|
|
|
if (sid.startsWith("emr")) {
|
|
@@ -83,7 +91,6 @@ public class WebSocketServer {
|
|
|
session.getBasicRemote().sendText(msg);
|
|
|
} catch (Exception ignored) {
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|