shjung 2 年 前
コミット
0148270cc3

+ 6 - 3
src/main/java/com/its/op/scheduler/ItsOpSigPhaseListener.java

@@ -75,14 +75,17 @@ public class ItsOpSigPhaseListener {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start();
 
-        List<TbScSgnlCtlrPhaseDto> sigPhaseDto = this.service.findAllPhaseList(true);
-        ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("sigPhaseStts", sigPhaseDto);
         try {
+            List<TbScSgnlCtlrPhaseDto> sigPhaseDto = this.service.findAllPhaseList(true);
+            ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("sigPhaseStts", sigPhaseDto);
             String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
             ItsWebSocketSessionManager.getInstance().sendBroadcastSigPhaseMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
         }
         catch(JsonProcessingException e){
-            log.error("ItsOpSigPhaseListener TbScSgnlCtlrPhaseDto Json parsing Exception: {}", sigPhaseDto);
+            log.error("ItsOpSigPhaseListener: TbScSgnlCtlrPhaseDto Json parsing Exception: {}", e.getMessage());
+        }
+        catch (Exception ea) {
+            log.error("ItsOpSigPhaseListener: Exception: {}", ea.getMessage());
         }
 
         stopWatch.stop();

+ 7 - 5
src/main/java/com/its/op/scheduler/job/SigPhaseJobThread.java

@@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.core.env.Environment;
 import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
 import org.springframework.util.StopWatch;
 import org.springframework.web.socket.TextMessage;
 
@@ -19,7 +18,7 @@ import java.util.List;
 
 @Slf4j
 @RequiredArgsConstructor
-@Service
+//@Service
 public class SigPhaseJobThread {
 
     private final Environment environment;
@@ -38,14 +37,17 @@ public class SigPhaseJobThread {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start();
 
-        List<TbScSgnlCtlrPhaseDto> sigPhaseDto = this.service.findAllPhaseList(true);
-        ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("sigPhaseStts", sigPhaseDto);
         try {
+            List<TbScSgnlCtlrPhaseDto> sigPhaseDto = this.service.findAllPhaseList(true);
+            ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("sigPhaseStts", sigPhaseDto);
             String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
             ItsWebSocketSessionManager.getInstance().sendBroadcastSigPhaseMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
         }
         catch(JsonProcessingException e){
-            log.error("SigPhaseJobThread TbScSgnlCtlrPhaseDto Json parsing Exception: {}", sigPhaseDto);
+            log.error("SigPhaseJobThread TbScSgnlCtlrPhaseDto Json parsing Exception: {}", e.getMessage());
+        }
+        catch (Exception ea) {
+            log.error("SigPhaseJobThread TbScSgnlCtlrPhaseDto Exception: {}", ea.getMessage());
         }
 
         stopWatch.stop();

+ 11 - 8
src/main/java/com/its/op/websocket/ItsWebSocketHandler.java

@@ -1,5 +1,6 @@
 package com.its.op.websocket;
 
+import com.its.utils.ItsUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -8,6 +9,7 @@ import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 import org.springframework.web.socket.handler.TextWebSocketHandler;
 
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -41,20 +43,21 @@ public class ItsWebSocketHandler extends TextWebSocketHandler {
     @Override
     protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
         log.info("handleTextMessage: " + session.getRemoteAddress() + ",  Uri[" + session.getUri() + "], UUID[" + session.getId() + "], message[" + message.getPayload() + "]");
-        /*List<String> requests = ItsUtils.split(message.getPayload(), ":");
-        if (requests.size() != 2) {
-            log.error("Request data parsing error: {}", requests);
-            session.close();
-            return;
-        }
-*/
+        log.info("Payload: {}", message.getPayload());
         ItsWebSocketSession sessionClient = ItsWebSocketSessionManager.getInstance().getSession(session);
         if (sessionClient == null) {
             log.error("Request session not found: {}", session);
             session.close();
             return;
         }
-        log.info("Payload: {}", message.getPayload());
+        List<String> requests = ItsUtils.split(message.getPayload(), ":");
+        if (requests.size() == 2) {
+            String command = requests.get(0);
+            String value = requests.get(1);
+            if ("groupId".equals(command)) {
+                sessionClient.setGroupId(value);
+            }
+        }
     }
 
     //클라이언트 연결을 끊었을 때 실행

+ 1 - 3
src/main/java/com/its/op/websocket/ItsWebSocketSession.java

@@ -5,8 +5,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 
-import java.io.IOException;
-
 @Slf4j
 @Data
 public class ItsWebSocketSession {
@@ -26,7 +24,7 @@ public class ItsWebSocketSession {
             synchronized (this.session) {
                 try {
                     this.session.sendMessage(message);
-                } catch (IOException e) {
+                } catch (Exception e) {
                     log.error("sendMessage: nodeId: {}, session: {}", command, session);
                 }
             }

+ 3 - 1
src/main/java/com/its/op/websocket/ItsWebSocketSessionManager.java

@@ -69,7 +69,9 @@ public class ItsWebSocketSessionManager {
     public void sendBroadcastSigPhaseMessage(String command, TextMessage message) {
         this.sessionMap.forEach((key, session) -> {
             //log.info("{}, {}, {}", command, message, key);
-            session.sendMessage(command, message);
+            if ("wall".equals(session.getGroupId())) {
+                session.sendMessage(command, message);
+            }
         });
     }
 }

+ 2 - 2
src/main/resources/static/application/wall/main/main-func.js

@@ -261,7 +261,7 @@ class SigDrawer {
     setFillColor(spcl, cntl) {
         let fillColor;
         switch (spcl) {
-            case 0:
+            case 0: //
                 fillColor = "#FFFFFF";
                 break;
             case 1:
@@ -283,7 +283,7 @@ class SigDrawer {
                 fillColor = "#FF0000";
                 break;
             default:
-                fillColor = "666666";
+                fillColor = "#666666";
                 break;
         }
       

+ 4 - 2
src/main/resources/static/js/websocket/websocket.js

@@ -24,6 +24,7 @@ export class TWebSocket {
             if (this.connectFunc) {
                 this.connectFunc(this.clientType, message);
             }
+            this.sockJs.send("groupId:" + this.clientType);
         };
 
         this.sockJs.onclose = (message) => {
@@ -65,8 +66,9 @@ export class TWebSocket {
 
     sendMessage(ACommand, AMessage) {
         if (this.sockJs) {
-            const sendMessage = JSON.stringify({ command: ACommand, message: AMessage });
-            this.sockJs.send(_apiUrl + "/ws/request.do", {}, sendMessage);
+            //const sendMessage = JSON.stringify({ command: ACommand, message: AMessage });
+            //this.sockJs.send(_apiUrl + "/ws/messages.do", {}, sendMessage);
+            this.sockJs.send(ACommand + ":" + AMessage);
         } else {
             console.error(`${this.clientType}: Websocket already closed`);
         }