Skip to content

Commit

Permalink
🚨 [HOTFIX] μ±„νŒ… λ²„κ·Έμž‘κΈ° 둜그 μΆ”κ°€
Browse files Browse the repository at this point in the history
  • Loading branch information
Jang99u committed Jan 24, 2025
1 parent e304c42 commit 0611097
Showing 1 changed file with 22 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,14 @@ public class CustomWebSocketHandler extends TextWebSocketHandler {
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
Long userId = getUserIdFromSession(session);

if (sessions.containsKey(userId)) {
log.warn("이미 μ—°κ²°λœ μ„Έμ…˜μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. μƒˆλ‘œμš΄ 연결을 κ±°λΆ€ν•©λ‹ˆλ‹€. userId: " + userId);
session.close();
return;
}

log.info("μ›Ήμ†ŒμΌ“ μ—°κ²° μ„±κ³΅μž…λ‹ˆλ‹€. ν˜„μž¬ μ—°κ²°λœ userId ======== " + userId);
log.info("ν˜„μž¬ μ„Έμ…˜μ— 접속쀑인 μœ μ € λͺ©λ‘ ======== " + sessions.keySet());

sessions.put(userId, session);
}
Expand All @@ -58,19 +65,20 @@ protected void handleTextMessage(WebSocketSession session, TextMessage textMessa
// JSON λ©”μ‹œμ§€ νŒŒμ‹±
ChatRequest incomingMessage = objectMapper.readValue(textMessage.getPayload(), ChatRequest.class);

log.info(incomingMessage.ownerChatRoomId().toString());
log.info(incomingMessage.peerChatRoomId().toString());
log.info(incomingMessage.receiverId().toString());
log.info(incomingMessage.content());
log.info(incomingMessage.type());
log.info(sessions.keySet().toString());
log.info("μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ JSON λ©”μ‹œμ§€λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€.");
log.info("sender id ======== " + incomingMessage.senderId().toString());
log.info("receiver id ======== " + incomingMessage.receiverId().toString());
log.info("λ³΄λ‚΄λŠ” λ©”μ‹œμ§€ ======== " + incomingMessage.content());
log.info("λ©”μ‹œμ§€ νƒ€μž… ======== " + incomingMessage.type());
log.info("ν˜„μž¬ μ„Έμ…˜μ— 접속쀑인 μœ μ € λͺ©λ‘ ======== " + sessions.keySet());

// sender 은 μ†ŒμΌ“ λ©”μ‹œμ§€λ₯Ό 보낸 μ‚¬λžŒ, receiver 은 ν•΄λ‹Ή λ©”μ‹œμ§€λ₯Ό 받은 μ‚¬λžŒ.
UserEntity sender = userRetriever.findByUserId(incomingMessage.senderId());
UserEntity receiver = userRetriever.findByUserId(incomingMessage.receiverId());

// μ±„νŒ…λ°© μƒμ„±μ΄λž‘ 메세지 전솑 ꡬ뢄 : μ±„νŒ…λ°© 생성은 κ²Œμ‹œκΈ€ μ‘°νšŒμ—μ„œ 이루어진닀.
if(incomingMessage.type().equals("CREATE")) {
log.info("λ©”μ‹œμ§€ νƒ€μž…μ΄ CREATE ===> μ±„νŒ…λ°© 생성을 μ‹œμž‘ν•©λ‹ˆλ‹€.");

if(chatRoomRepository.existsByPostIdAndOwnerIdAndPeerId(
incomingMessage.postId(),
Expand All @@ -96,30 +104,23 @@ protected void handleTextMessage(WebSocketSession session, TextMessage textMessa
senderSession.sendMessage(new TextMessage(
objectMapper.writeValueAsString(new ChatCreateResponse(
"CHAT_ROOM_CREATED",
newChatRooms.get(0).toString(), // μƒμ„±λœ λ‚΄ μ±„νŒ…λ°© ID
newChatRooms.get(1).toString() // μƒμ„±λœ μƒλŒ€λ°© μ±„νŒ…λ°© ID
newChatRooms.get(0), // μƒμ„±λœ λ‚΄ μ±„νŒ…λ°© ID
newChatRooms.get(1) // μƒμ„±λœ μƒλŒ€λ°© μ±„νŒ…λ°© ID
))
));
if(receiverSession != null && receiverSession.isOpen()) {
log.info("μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— 있음");
log.info("μ±„νŒ…λ°© 생성 ===> μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— 있음");
// μ±„νŒ…λ°© 생성 μ‹œ μƒλŒ€λ°©μ€ μ±„νŒ…λ°©μ— 듀어와 μžˆμ„ μˆ˜κ°€ μ—†μŒ
ChatRoomsResponse chatRoomsResponses = chatRoomService.getChatRooms(receiver.getId());

receiverSession.sendMessage(new TextMessage(
objectMapper.writeValueAsString(chatRoomsResponses)
));
} else {
log.info("μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— μ—†μŒ");
log.info("μ±„νŒ…λ°© 생성 ===> μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— μ—†μŒ");
}
} else if(incomingMessage.type().equals("MESSAGE")) {
log.info("=============== μ±„νŒ… λ©”μ‹œμ§€ 전솑 ===============");
log.info(incomingMessage.ownerChatRoomId().toString());
log.info(incomingMessage.peerChatRoomId().toString());
log.info(incomingMessage.receiverId().toString());
log.info(incomingMessage.content());
log.info(incomingMessage.type());
log.info(sessions.keySet().toString());
log.info("=============== μ±„νŒ… λ©”μ‹œμ§€ κΈ°λ³Έ 정보 ===============");
// μ†ŒμΌ“μ— 연결쀑인 μœ μ €μ˜ μ„Έμ…˜μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.
WebSocketSession receiverSession = sessions.get(incomingMessage.receiverId());

Expand All @@ -128,7 +129,7 @@ protected void handleTextMessage(WebSocketSession session, TextMessage textMessa

// μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— 듀어와 μžˆμ„ λ•Œ
if(receiverSession != null && receiverSession.isOpen()) {
log.info("μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— 있음");
log.info("μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 ===> μƒλŒ€λ°©μ΄ μ„Έμ…˜μ— 있음");
if (chatRoomInfo.getParticipatingUsers().contains(receiver.getId())) {
log.info("μƒλŒ€λ°©μ΄ μ±„νŒ…μ— 듀어와 있음");
// μΌ€μ΄μŠ€ 1-1. μƒλŒ€λ°©μ΄ μ±„νŒ…λ°©μ— 듀어와 μžˆμ„ λ•Œ
Expand All @@ -155,11 +156,11 @@ protected void handleTextMessage(WebSocketSession session, TextMessage textMessa
objectMapper.writeValueAsString(chatResponse)
));
} catch (Exception e) {
log.info("μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 & μƒλŒ€λ°©μ΄ μ„Έμ…˜μ—λŠ” 있고 μ±„νŒ…μ— 듀어와 있음");
log.error("log info ==========" + e);
log.error("힝 γ… "); // μ—λŸ¬ 둜그 μΆ”κ°€
}
} else {
log.info("μƒλŒ€λ°©μ΄ μ±„νŒ…μ— 듀어와 μžˆμ§€ μ•ŠμŒ");
log.info("μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 ===> μƒλŒ€λ°©μ΄ μ±„νŒ…μ— 듀어와 μžˆμ§€ μ•ŠμŒ");
// μΌ€μ΄μŠ€ 1-2. μƒλŒ€λ°©μ΄ μ±„νŒ…λ°©μ— 듀어와 μžˆμ§€ μ•Šμ„ λ•Œ
try {
log.info("μ±„νŒ… 메세지 μ €μž₯ μ‹œμž‘");
Expand All @@ -184,8 +185,8 @@ protected void handleTextMessage(WebSocketSession session, TextMessage textMessa
objectMapper.writeValueAsString(chatRoomsResponses)
));
} catch (Exception e) {
log.info("μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 & μƒλŒ€λ°©μ΄ μ„Έμ…˜μ—λŠ” μžˆμ§€λ§Œ μ±„νŒ…μ—λŠ” 듀어와 μžˆμ§€ μ•ŠμŒ");
log.error("log info ==========" + e);
log.error("힝 γ… γ… "); // μ—λŸ¬ 둜그 μΆ”κ°€
}
}
} else {
Expand Down

0 comments on commit 0611097

Please sign in to comment.