Skip to content
Snippets Groups Projects
Commit 0d4734cc authored by 천 진강's avatar 천 진강
Browse files

feat(spring): 웹소켓 세션관련 예외처리 추가

parent ba9ec810
Branches
No related tags found
No related merge requests found
......@@ -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);
try {
session.sendMessage(new TextMessage( lot + "-PARK"));
} catch (IOException e) { socketRepository.removeSession(session); }
}
else if (cmd.length() >= 6) {
if (chargingService.validate(lot, cmd)) {
try {
session.sendMessage(new TextMessage(lot + "-" + "Y"));
} catch (IOException e) { socketRepository.removeSession(session); }
}
else {
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();
}
......
......@@ -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);
}
}
}
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment