From 6fe1e6dbec57bbd10ba1bbcf3347fa7f4492e553 Mon Sep 17 00:00:00 2001 From: fs-danaus <danaus314@qq.com> Date: 星期三, 06 七月 2022 11:34:35 +0800 Subject: [PATCH] webScoket实现启停系统功能 --- src/com/yc/sdk/WebSocketMessage/api/messagelistener/WebSocketMessageListener.java | 69 +++++++++++++++++++--------------- 1 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/com/yc/sdk/WebSocketMessage/api/messagelistener/WebSocketMessageListener.java b/src/com/yc/sdk/WebSocketMessage/api/messagelistener/WebSocketMessageListener.java index 1b929a6..f4a6104 100644 --- a/src/com/yc/sdk/WebSocketMessage/api/messagelistener/WebSocketMessageListener.java +++ b/src/com/yc/sdk/WebSocketMessage/api/messagelistener/WebSocketMessageListener.java @@ -37,36 +37,41 @@ TasksMessageIfc tasksMessageIfc; @Autowired VersionMessageIfc versionMessageIfc; + @Autowired + RefreshDataSourceMessageIfc refreshDataSourceMessageIfc; + @Override public void onMessage(Message message, byte[] pattern) { try { RedisSerializer<?> serializer = redisTemplate.getValueSerializer(); Object body = serializer.deserialize(message.getBody()); //String channel = new String(pattern); //鍙栬闃呴閬� 涓婚 channel - MessageInfo msg=null; - if(body instanceof MessageInfo) { + MessageInfo msg = null; + if (body instanceof MessageInfo) { msg = (MessageInfo) body; - }else { + } else { msg = MessageInfo.build(String.valueOf(body)); } //System.out.println("璁㈤槄鎺ユ敹鍒扮殑娑堟伅锛�"+msg.toString()); - - //缇ゅ彂鎵�鏈夊皬绋嬪簭鐢ㄦ埛 - if (msg.getMsgType().equals(MessageType.REFRESH_PANICBUYING) && (msg.getUserCode()==null|| msg.getUserCode().equals("")) ) { - List<WsMessageUserEntity> wsMessageUserEntityList = WebSocketMessageServer.getOnlineUser(msg.getDbId(), msg.getUserFromType()); - //鍙湁鏄瓨鍦ㄤ簬褰撳墠鐨勭敤鎴蜂俊鎭墠闇�瑕佸鐞嗭紝鍚﹀垯涓嶉渶瑕佸鐞� - if (wsMessageUserEntityList != null && wsMessageUserEntityList.size() != 0) { - for (WsMessageUserEntity wsMessageUserEntity : wsMessageUserEntityList) { - handlerMessage(msg, wsMessageUserEntity); - } - } - }else if(msg.getMsgType().equals(MessageType.REFRESH_TASK)|| - msg.getMsgType().equals(MessageType.REFRESH_LOCALVERSION_TASK)){ - //瀵逛簬娌$敤websocket鎺ユ敹鐨勬儏鍐碉紝鐩存帴澶勭悊鐩稿叧娑堟伅 - handlerMessage(msg,null); - }else{ - List<WsMessageUserEntity> wsMessageUserEntityList = WebSocketMessageServer.getOnlineUser(msg.getDbId(), msg.getUserFromType(),msg.getUserCode()); + //缇ゅ彂鎵�鏈夊皬绋嬪簭鐢ㄦ埛 + if ((msg.getMsgType().equals(MessageType.REFRESH_PANICBUYING) && (msg.getUserCode() == null || msg.getUserCode().equals(""))) || + MessageType.NOTICE_SYSTEM_STOP.equals(msg.getMsgType())|| + MessageType.NOTICE_SYSTEM_START.equals(msg.getMsgType())) { + List<WsMessageUserEntity> wsMessageUserEntityList = WebSocketMessageServer.getOnlineUser(msg.getDbId(), msg.getUserFromType()); + //鍙湁鏄瓨鍦ㄤ簬褰撳墠鐨勭敤鎴蜂俊鎭墠闇�瑕佸鐞嗭紝鍚﹀垯涓嶉渶瑕佸鐞� + if (wsMessageUserEntityList != null && wsMessageUserEntityList.size() != 0) { + for (WsMessageUserEntity wsMessageUserEntity : wsMessageUserEntityList) { + handlerMessage(msg, wsMessageUserEntity); + } + } + } else if (msg.getMsgType().equals(MessageType.REFRESH_TASK) || + msg.getMsgType().equals(MessageType.REFRESH_LOCALVERSION_TASK)) { + //瀵逛簬娌$敤websocket鎺ユ敹鐨勬儏鍐碉紝鐩存帴澶勭悊鐩稿叧娑堟伅 + handlerMessage(msg, null); + + } else { + List<WsMessageUserEntity> wsMessageUserEntityList = WebSocketMessageServer.getOnlineUser(msg.getDbId(), msg.getUserFromType(), msg.getUserCode()); //鍙湁鏄瓨鍦ㄤ簬褰撳墠鐨勭敤鎴蜂俊鎭墠闇�瑕佸鐞嗭紝鍚﹀垯涓嶉渶瑕佸鐞� if (wsMessageUserEntityList != null && wsMessageUserEntityList.size() != 0) { for (WsMessageUserEntity wsMessageUserEntity : wsMessageUserEntityList) { @@ -85,8 +90,8 @@ * @return */ protected void handlerMessage(MessageInfo message, WsMessageUserEntity userEntity) { - MessageIfc messageIfc = null; - if (message != null && message.getMsgType() != null) { + MessageIfc messageIfc = null; + if (message != null && message.getMsgType() != null) { switch (message.getMsgType()) { case 6001: //APP鎵爜鐧诲綍 // messageIfc=imMessageIfc; @@ -100,11 +105,13 @@ case 6004: //鏀跺彇鏈嶅姟璐圭画璐归�氱煡 //messageIfc=imMessageIfc; break; - case 6005: //妫�鏌ョ郴缁熸槸鍚﹀仠鐢紝浠f浛maintaince.do - //messageIfc=imMessageIfc; + case 6005: //妫�鏌ョ郴缁熸槸鍚﹀仠鐢紝浠f浛maintaince.do + case 6014: //鍏抽棴绯荤粺閫氱煡 + case 6015: //鍚敤绯荤粺閫氱煡 + messageIfc = refreshDataSourceMessageIfc; break; case 6006: //灏忕▼搴忔壂鐮佹牳閿�(鎵爜浜嗭紝绛夊緟鎸夆�滄牳閿�鈥濇寜閽�) - messageIfc=heXiaoMessageIfc; + messageIfc = heXiaoMessageIfc; break; case 6007: //鍙戦�佸嵆鏃舵秷鎭� im messageIfc = imMessageIfc; @@ -112,24 +119,24 @@ messageIfc = apiAuthMessageIfc; break; case 6009: //鍒锋柊灏忕▼搴忕娲诲姩鍐呭 MessageType.REFRESH_PANICBUYING - messageIfc = refreshPanicBuyingIfc ; - break; + messageIfc = refreshPanicBuyingIfc; + break; case 6010: //灏忕▼搴忔壂鐮佹牳閿�(鐐逛簡鈥滄牳閿�鈥濇寜閽級 - messageIfc=heXiaoMessageIfc; + messageIfc = heXiaoMessageIfc; break; case 6011: //鍐滆鏀粯缁撴灉閫氱煡鍥炶皟 - messageIfc=abcPayMessageIfc; + messageIfc = abcPayMessageIfc; break; case 6012: //鍒锋柊浠诲姟浣滀笟 - messageIfc=tasksMessageIfc; + messageIfc = tasksMessageIfc; break; case 6013: //鍒锋柊鍐呭瓨鐗堟湰鍙� - messageIfc=versionMessageIfc; + messageIfc = versionMessageIfc; break; default: } if (messageIfc != null) { - messageIfc.handlerMessage(message, userEntity); + messageIfc.handlerMessage(message, userEntity); } } } -- Gitblit v1.8.0