From ce64e667815b39efdc2f8bd52be0d43d49db8d84 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 17 七月 2022 00:06:29 +0800
Subject: [PATCH] 优化小区位置

---
 service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java |   38 +++++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java b/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
index 186124a..3db7852 100644
--- a/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
+++ b/service-api/src/main/java/com/java110/api/websocket/MessageWebsocket.java
@@ -5,14 +5,10 @@
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
 import org.springframework.stereotype.Component;
 
-import javax.websocket.OnClose;
-import javax.websocket.OnError;
-import javax.websocket.OnMessage;
-import javax.websocket.OnOpen;
-import javax.websocket.Session;
+import javax.websocket.*;
 import javax.websocket.server.PathParam;
 import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
@@ -26,7 +22,7 @@
  * @Version 1.0
  * add by wuxw 2020/6/5
  **/
-@ServerEndpoint("/ws/message/{userId}")
+@ServerEndpoint("/ws/message/{userId}/{clientId}")
 @Component
 public class MessageWebsocket {
     private final static Logger logger = LoggerFactory.getLogger(MessageWebsocket.class);
@@ -54,14 +50,17 @@
      */
     private String userId = "";
 
+    private String clientId = "";
+
 
     /**
      * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
      */
     @OnOpen
-    public void onOpen(Session session, @PathParam("userId") String userId) {
+    public void onOpen(Session session, @PathParam("userId") String userId, @PathParam("clientId") String clientId) {
         this.session = session;
         this.userId = userId;
+        this.clientId = clientId;
         if (webSocketMap.containsKey(userId)) {
             webSocketMap.remove(userId);
             webSocketMap.put(userId, this);
@@ -74,12 +73,12 @@
         }
 
 
-        logger.debug("鐢ㄦ埛杩炴帴:" + userId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
+        logger.debug("鐢ㄦ埛杩炴帴:" + userId + ",瀹㈡埛绔細" + clientId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
 
         try {
             sendMessage("杩炴帴鎴愬姛");
         } catch (IOException e) {
-            logger.error("鐢ㄦ埛:" + userId + ",缃戠粶寮傚父!!!!!!");
+            logger.error("鐢ㄦ埛:" + userId + ",瀹㈡埛绔細" + clientId + ",缃戠粶寮傚父!!!!!!");
         }
     }
 
@@ -93,7 +92,7 @@
             //浠巗et涓垹闄�
             subOnlineCount();
         }
-        logger.info("鐢ㄦ埛閫�鍑�:" + userId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
+        logger.info("鐢ㄦ埛閫�鍑�:" + userId + ",瀹㈡埛绔細" + clientId + ",褰撳墠鍦ㄧ嚎浜烘暟涓�:" + getOnlineCount());
     }
 
     /**
@@ -103,7 +102,7 @@
      */
     @OnMessage
     public void onMessage(String message, Session session) throws IOException {
-        logger.info("鐢ㄦ埛娑堟伅:" + userId + ",鎶ユ枃:" + message);
+        logger.info("鐢ㄦ埛娑堟伅:" + userId + ",瀹㈡埛绔細" + clientId + ",鎶ユ枃:" + message);
         //鍙互缇ゅ彂娑堟伅
         //娑堟伅淇濆瓨鍒版暟鎹簱銆乺edis
         if (StringUtil.isEmpty(message)) {
@@ -120,9 +119,9 @@
 
         WsDataDto wsDataDto = JSONObject.parseObject(message, WsDataDto.class);
 
-        switch (wsDataDto.getCmd()){
+        switch (wsDataDto.getCmd()) {
             case WsDataDto.CMD_PING:
-                webSocketMap.get(userId).sendMessage(wsDataDto.toString());
+                //webSocketMap.get(userId).sendMessage(wsDataDto.toString());
                 break;
         }
 
@@ -148,8 +147,8 @@
      */
     @OnError
     public void onError(Session session, Throwable error) {
-        logger.error("鐢ㄦ埛閿欒:" + this.userId + ",鍘熷洜:" + error.getMessage());
-        error.printStackTrace();
+        logger.error("鐢ㄦ埛閿欒:" + this.userId + ",瀹㈡埛绔細" + clientId + ",鍘熷洜:" + error.getMessage());
+        // error.printStackTrace();
     }
 
     /**
@@ -165,10 +164,11 @@
      */
     public static void sendInfo(String message, String userId) throws IOException {
         logger.info("鍙戦�佹秷鎭埌:" + userId + "锛屾姤鏂�:" + message);
-
+        if (!webSocketMap.containsKey(userId)) {
+            //瀹㈡埛绔湭杩炴帴
+            return;
+        }
         webSocketMap.get(userId).sendMessage(message);
-
-
     }
 
     public static synchronized int getOnlineCount() {

--
Gitblit v1.8.0