From 96be94fc3c33c49e15b538bebbea455e839a7a7b Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 10 六月 2025 16:32:12 +0800 Subject: [PATCH] 数字孪生看板接口 维修service提取到公共模块 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java | 39 ++++++++++++++++++++++++++------------- 1 files changed, 26 insertions(+), 13 deletions(-) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java index b2ccf23..35d7d6d 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java @@ -2,6 +2,9 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import javax.websocket.*; import javax.websocket.server.PathParam; @@ -23,7 +26,7 @@ @Slf4j @ServerEndpoint("/websocket/{userId}") public class WebSocket { - + /**绾跨▼瀹夊叏Map*/ private static ConcurrentHashMap<String, Session> sessionPool = new ConcurrentHashMap<>(); @@ -34,14 +37,23 @@ @Resource private JeecgRedisClient jeecgRedisClient; + private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); //==========銆恮ebsocket鎺ュ彈銆佹帹閫佹秷鎭瓑鏂规硶 鈥斺�� 鍏蜂綋鏈嶅姟鑺傜偣鎺ㄩ�亀s娑堟伅銆�======================================================================================== + @OnOpen public void onOpen(Session session, @PathParam(value = "userId") String userId) { try { sessionPool.put(userId, session); log.info("銆愮郴缁� WebSocket銆戞湁鏂扮殑杩炴帴锛屾�绘暟涓�:" + sessionPool.size()); + + // 鍚姩蹇冭烦浠诲姟锛屾瘡鍒嗛挓鍙戦�佷竴娆″績璺虫秷鎭� +// scheduler.scheduleAtFixedRate(() -> { +// pushMessage(userId, "{\"cmd\":\"" + WebsocketConst.CMD_USER + "\",\"txt\":\"" + "蹇冭烦鍝嶅簲" + "\"}"); +// }, 0, 1, TimeUnit.MINUTES); + } catch (Exception e) { + log.error("銆愮郴缁� WebSocket銆憃nOpen 寮傚父", e); } } @@ -50,6 +62,8 @@ try { sessionPool.remove(userId); log.info("銆愮郴缁� WebSocket銆戣繛鎺ユ柇寮�锛屾�绘暟涓�:" + sessionPool.size()); + // 鍙栨秷蹇冭烦浠诲姟 + scheduler.shutdown(); } catch (Exception e) { e.printStackTrace(); } @@ -93,12 +107,11 @@ log.error(e.getMessage(), e); } } - log.info("銆愮郴缁� WebSocket銆戠兢鍙戞秷鎭�:" + message); + log.info("銆�3D瀹炴椂鏁版嵁 WebSocket銆戞秷鎭�" ); } catch (Exception e) { log.error(e.getMessage(), e); } } - /** * ws鎺ュ彈瀹㈡埛绔秷鎭� @@ -110,14 +123,14 @@ }else{ log.debug("銆愮郴缁� WebSocket銆戞敹鍒板鎴风娑堟伅:" + message); } - + //------------------------------------------------------------------------------ - JSONObject obj = new JSONObject(); - //涓氬姟绫诲瀷 - obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_CHECK); - //娑堟伅鍐呭 - obj.put(WebsocketConst.MSG_TXT, "蹇冭烦鍝嶅簲"); - this.pushMessage(userId, obj.toJSONString()); +// JSONObject obj = new JSONObject(); +// //涓氬姟绫诲瀷 +// obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_CHECK); +// //娑堟伅鍐呭 +// obj.put(WebsocketConst.MSG_TXT, "蹇冭烦鍝嶅簲"); +// this.pushMessage(userId, obj.toJSONString()); //------------------------------------------------------------------------------ } @@ -129,11 +142,11 @@ */ @OnError public void onError(Session session, Throwable t) { - log.warn("銆愮郴缁� WebSocket銆戞秷鎭嚭鐜伴敊璇�"); + log.warn("銆愮郴缁� WebSocket銆戞秷鎭嚭鐜伴敊璇�",t); //t.printStackTrace(); } //==========銆愮郴缁� WebSocket鎺ュ彈銆佹帹閫佹秷鎭瓑鏂规硶 鈥斺�� 鍏蜂綋鏈嶅姟鑺傜偣鎺ㄩ�亀s娑堟伅銆�======================================================================================== - + //==========銆愰噰鐢╮edis鍙戝竷璁㈤槄妯″紡鈥斺�旀帹閫佹秷鎭��======================================================================================== /** @@ -187,5 +200,5 @@ } } //=======銆愰噰鐢╮edis鍙戝竷璁㈤槄妯″紡鈥斺�旀帹閫佹秷鎭��========================================================================================== - + } \ No newline at end of file -- Gitblit v1.9.3