From 0d4734ccc2db62982e3881d9fa10f3a1d6629b8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=B2=9C=20=EC=A7=84=EA=B0=95?= <jjjjjk12@ajou.ac.kr>
Date: Sat, 7 Dec 2024 15:37:12 +0900
Subject: [PATCH] =?UTF-8?q?feat(spring):=20=EC=9B=B9=EC=86=8C=EC=BC=93=20?=
 =?UTF-8?q?=EC=84=B8=EC=85=98=EA=B4=80=EB=A0=A8=20=EC=98=88=EC=99=B8?=
 =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../thiefsil/config/WebSocketHandler.java       | 17 ++++++++++++++---
 .../thiefsil/controller/MainController.java     |  6 +++++-
 .../thiefsil/service/ChargingService.java       | 10 +++++++---
 3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java b/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java
index 3362f31..bd31c74 100644
--- a/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java
+++ b/server-node-spring/src/main/java/org/example/thiefsil/config/WebSocketHandler.java
@@ -8,6 +8,8 @@ import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 import org.springframework.web.socket.handler.TextWebSocketHandler;
 
+import java.io.IOException;
+
 
 @RequiredArgsConstructor
 @Component
@@ -38,15 +40,21 @@ public class WebSocketHandler  extends TextWebSocketHandler {
 
             if (cmd.equals("PARK")) {
                 chargingService.park(lot);
-                session.sendMessage(new TextMessage( lot + "-PARK"));
+                try {
+                    session.sendMessage(new TextMessage( lot + "-PARK"));
+                } catch (IOException e) { socketRepository.removeSession(session); }
             }
 
             else if (cmd.length() >= 6) {
                 if (chargingService.validate(lot, cmd)) {
-                    session.sendMessage(new TextMessage(lot + "-" + "Y"));
+                   try {
+                       session.sendMessage(new TextMessage(lot + "-" + "Y"));
+                   } catch (IOException e) { socketRepository.removeSession(session); }
                 }
                 else {
-                    session.sendMessage(new TextMessage(lot + "-" + "N"));
+                   try {
+                       session.sendMessage(new TextMessage(lot + "-" + "N"));
+                   } catch (IOException e) { socketRepository.removeSession(session); }
                 }
             }
 
@@ -59,6 +67,9 @@ public class WebSocketHandler  extends TextWebSocketHandler {
                 chargingService.unpark(lot);
                 socketRepository.removeSession(session);
                 session.sendMessage(new TextMessage(lot + "-" + "EXIT"));
+                try {
+                    Thread.sleep(1000000);
+                } catch (InterruptedException e) { e.printStackTrace(); }
                 session.close();
             }
 
diff --git a/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java b/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java
index 0598f91..faa7a29 100644
--- a/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java
+++ b/server-node-spring/src/main/java/org/example/thiefsil/controller/MainController.java
@@ -33,7 +33,11 @@ public class MainController {
         List<WebSocketSession> sessions = socketRepository.findAllSession();
         chargingService.extinguish();
         for (WebSocketSession session : sessions) {
-            session.sendMessage(new TextMessage("CLEAR"));
+            try {session.sendMessage(new TextMessage("CLEAR"));}
+            catch (Exception e) {
+                e.printStackTrace();
+                socketRepository.removeSession(session);
+            }
         }
     }
 
diff --git a/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java b/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java
index 3841398..0022dc7 100644
--- a/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java
+++ b/server-node-spring/src/main/java/org/example/thiefsil/service/ChargingService.java
@@ -136,7 +136,11 @@ public class ChargingService {
     public void onFire(String lot) throws IOException {
         List<WebSocketSession> sessions = socketRepository.findAllSession();
         for (WebSocketSession session : sessions) {
-            session.sendMessage(new TextMessage(lot + "-FIRE"));
+           try { session.sendMessage(new TextMessage(lot + "-FIRE")); }
+           catch (Exception e) {
+               e.printStackTrace();
+               socketRepository.removeSession(session);
+           }
         }
         fireState = true;
         webMailService.sendFireMail(lot);
@@ -156,7 +160,7 @@ public class ChargingService {
         LocalDateTime mail = LocalDateTime.now(ZoneId.of("Asia/Seoul"));
 
         park = park.minusMinutes(3);
-        mail = mail.minusMinutes(1);
+        mail = mail.minusMinutes(10);
 
         List<Vehicle> vehicles = vehicleRepository.findVehiclesByParkingTimeBeforeAndLastMailBeforeAndDriverIsNotNull(park, mail);
         for (Vehicle vehicle : vehicles) {
@@ -187,7 +191,7 @@ public class ChargingService {
         HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", "application/json");
         HttpEntity<Object> entity = new HttpEntity<>(headers);
-        ResponseEntity<ValidateCarDTO> response = restTemplate.exchange("http://ajou.ftp.sh/api/car?carNumber=" + number
+        ResponseEntity<ValidateCarDTO> response = restTemplate.exchange("http://ajou.ftp.sh:8000/api/car?carNumber=" + number
                 , HttpMethod.GET,entity, ValidateCarDTO.class);
         ValidateCarDTO validateCarDTO = response.getBody();
         System.out.println(number);
-- 
GitLab