Explorar o código

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into wanghaicheng

wanghaicheng %!s(int64=5) %!d(string=hai) anos
pai
achega
9beea51a6b

+ 1 - 3
lift-push/src/main/java/cn/com/ty/lift/push/websocket/config/WebSocketInterceptor.java

@@ -8,7 +8,6 @@ import org.springframework.web.socket.WebSocketHandler;
 import org.springframework.web.socket.server.HandshakeInterceptor;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 import java.util.Map;
 
 public class WebSocketInterceptor implements HandshakeInterceptor {
@@ -25,8 +24,7 @@ public class WebSocketInterceptor implements HandshakeInterceptor {
             HttpServletRequest httpServletRequest = serverHttpRequest.getServletRequest();
             //获取token
             String authorizationToken = httpServletRequest.getParameter(ApiConstants.AUTHORIZATION_TOKEN);
-            HttpSession session = httpServletRequest.getSession();
-            session.setAttribute(ApiConstants.AUTHORIZATION_TOKEN, authorizationToken);
+            map.put(ApiConstants.AUTHORIZATION_TOKEN, authorizationToken);
         }
         return true;
     }

+ 13 - 11
lift-push/src/main/java/cn/com/ty/lift/push/websocket/handler/TimeyMessageHandler.java

@@ -41,15 +41,17 @@ public class TimeyMessageHandler implements WebSocketHandler {
     public void afterConnectionEstablished(WebSocketSession session) {
         //用户登录连接后,将用户id放入到在线用户列表中
         Long userId = getCurrentUser(session);
-        users.put(userId, session);
-        //获取用户实时消息
-        List<TimeMessage> TimeMessageList = timeMessageService.list(new QueryWrapper<TimeMessage>()
-                .eq("view_flag", WebSocketConstants.IS_NOT_VIEW)
-                .eq("user_id", userId)
-                .eq("device_model", ApiConstants.DeviceModel.PC)
-        );
-        //将消息推送给用户
-        pushMessageToUser(userId, TimeMessageList);
+        if (userId == null) {
+            users.put(userId, session);
+            //获取用户实时消息
+            List<TimeMessage> TimeMessageList = timeMessageService.list(new QueryWrapper<TimeMessage>()
+                    .eq("view_flag", WebSocketConstants.IS_NOT_VIEW)
+                    .eq("user_id", userId)
+                    .eq("device_model", ApiConstants.DeviceModel.PC)
+            );
+            //将消息推送给用户
+            pushMessageToUser(userId, TimeMessageList);
+        }
     }
 
     //接收socket信息
@@ -170,9 +172,9 @@ public class TimeyMessageHandler implements WebSocketHandler {
     private Long getCurrentUser(WebSocketSession session) {
         String authToken = (String) session.getAttributes().get(ApiConstants.AUTHORIZATION_TOKEN);
         Object mobileUserInfo = redisTemplate.opsForValue().get(authToken);
-        if(mobileUserInfo != null) {
+        if (mobileUserInfo != null) {
             Object userInfo = redisTemplate.opsForValue().get(mobileUserInfo);
-            if(userInfo != null) {
+            if (userInfo != null) {
                 Map<String, Object> currentUserInfoMap = JSONUtil.parseObj(userInfo);
                 return (Long) currentUserInfoMap.get(ApiConstants.CURRENT_USER_ID);
             }