@@ -51,30 +51,27 @@ public void sendMessage(Long chatRoomId, String senderId, String receiverId, Cha
51
51
52
52
//String fileProcess = processChatImage(request.file());
53
53
54
- //boolean receiverInChatRoom = isReceiverInChatRoom(chatRoomId, receiverId);
55
-
56
- Boolean isin = true ;
54
+ boolean receiverInChatRoom = isReceiverInChatRoom (chatRoomId , receiverId );
57
55
58
56
// 메시지 생성
59
- ChatMessage chatMessage = createChatMessage (chatRoomId , senderId , receiverId , isin ,request );
57
+ ChatMessage chatMessage = createChatMessage (chatRoomId , senderId , receiverId , receiverInChatRoom ,request );
60
58
61
59
//db에 메세지 저장(비동기)
62
60
chatPersistenceService .saveMessageInRedisAsync (chatRoomId ,chatMessage );
63
61
64
62
//구독 및 redis 발행
65
63
chatWebSocketService .notifyWebSocketSubscribers (chatRoomId , chatMessage , user );
66
64
67
- // if(!receiverInChatRoom) {
68
- // //알림보내기
69
- // log.info("상대방이 접속해있지 않습니다. 알림을 보냅니다.");
70
- //
71
- // // 채팅 이벤트 발행
72
- // eventPublisher.publishEvent(new SendMessageEvent(
73
- // senderId,
74
- // receiverId,
75
- // FcmType.CHAT
76
- // ));
77
- // }
65
+ if (!receiverInChatRoom ) {
66
+ log .info ("상대방이 접속해있지 않습니다. 알림을 보냅니다." );
67
+
68
+ // 채팅 이벤트 발행
69
+ eventPublisher .publishEvent (new SendMessageEvent (
70
+ senderId ,
71
+ receiverId ,
72
+ FcmType .CHAT
73
+ ));
74
+ }
78
75
}
79
76
80
77
//채팅방의 메세지 조회
@@ -94,27 +91,26 @@ public void markAllMessagesAsRead(Long chatRoomId) {
94
91
chatMessageRepository .markAllMessagesAsRead (chatRoomId );
95
92
}
96
93
97
- // private boolean isReceiverInChatRoom(Long chatRoomId, String receiverId) {
98
- // try{
99
- // String userCurrentRoom = redisService.getUserCurrentRoom(receiverId);
100
- // log.info("수신자 {}가 현재 채팅방 {}에 존재합니다.",receiverId,chatRoomId);
101
- //
102
- // boolean isInRoom = userCurrentRoom != null && userCurrentRoom.equals(chatRoomId.toString());
103
- // log.info("userCurrentRoom.equals(chatRoomId.toString()): {}", isInRoom);
104
- // return isInRoom;
105
- // } catch (Exception e) {
106
- // throw ChatReceiverNotFoundException.EXCEPTION;
107
- // }
108
- // }
94
+ private boolean isReceiverInChatRoom (Long chatRoomId , String receiverId ) {
95
+ try {
96
+ String userCurrentRoom = redisService .getUserCurrentRoom (receiverId );
97
+
98
+ boolean isInRoom = userCurrentRoom != null && userCurrentRoom .equals (chatRoomId .toString ());
99
+ log .info ("수신자 {}의 채팅방 {}에 존재 여부 : {}" ,receiverId ,chatRoomId ,isInRoom );
100
+ return isInRoom ;
101
+ } catch (Exception e ) {
102
+ throw ChatReceiverNotFoundException .EXCEPTION ;
103
+ }
104
+ }
109
105
110
106
//메세지 생성
111
- private ChatMessage createChatMessage (Long chatRoomId , String senderId , String receiverId ,Boolean isin ,ChatMessageRequest request ) {
107
+ private ChatMessage createChatMessage (Long chatRoomId , String senderId , String receiverId ,boolean isReceiverIn ,ChatMessageRequest request ) {
112
108
return ChatMessage .create (
113
109
null ,
114
110
request .content (),
115
111
request .type (),
116
112
request .file (),
117
- isin ,
113
+ isReceiverIn ,
118
114
LocalDateTime .now (),
119
115
senderId ,
120
116
receiverId ,
0 commit comments