@@ -173,14 +173,15 @@ private void handleChatMessage(WebSocketSession session, JsonNode jsonNode) {
173173 Long roomId = jsonNode .get ("roomId" ).asLong ();
174174 Long userId = jsonNode .get ("userId" ).asLong ();
175175 String message = jsonNode .get ("message" ).asText ();
176+ String from = jsonNode .has ("from" ) ? jsonNode .get ("from" ).asText () : null ;
177+
178+ log .info ("채팅 메시지: roomId={}, userId={}, message={}, from={}" , roomId , userId , message , from );
176179
177180 if (message == null || message .trim ().isEmpty ()) {
178181 sendErrorMessage (session , "메시지 내용이 비어있습니다." );
179182 return ;
180183 }
181184
182- log .info ("채팅 메시지: roomId={}, userId={}, message={}" , roomId , userId , message );
183-
184185 // 사용자 정보 검증
185186 User user = userRepository .findById (userId ).orElse (null );
186187 if (user == null ) {
@@ -194,8 +195,20 @@ private void handleChatMessage(WebSocketSession session, JsonNode jsonNode) {
194195 ChatMsgRequest chatMsgRequest = new ChatMsgRequest (message );
195196 ChatMsgResponse response = chatMessageService .sendMessage (chatMsgRequest , userId , roomId );
196197
197- // 메시지 포맷 변환하여 전송
198- String messageJson = objectMapper .writeValueAsString (response );
198+ // 웹소켓 메시지 포맷 생성 (클라이언트와 일치시킴)
199+ Map <String , Object > wsMessage = new HashMap <>();
200+ wsMessage .put ("type" , "CHAT" );
201+ wsMessage .put ("roomId" , roomId );
202+ wsMessage .put ("userId" , userId );
203+ wsMessage .put ("chatMsgId" , response .getChatMsgId ()); // DB에 저장된 메시지 ID 추가
204+ wsMessage .put ("from" , response .getFrom ());
205+ wsMessage .put ("nickname" , response .getFrom ()); // 클라이언트 호환성을 위해 두 필드 모두 설정
206+ wsMessage .put ("message" , message );
207+ wsMessage .put ("sendAt" , response .getSendAt ().toString ());
208+
209+ // 메시지 JSON 변환
210+ String messageJson = objectMapper .writeValueAsString (wsMessage );
211+ log .info ("Broadcasting message: {}" , messageJson );
199212
200213 // 해당 채팅방의 모든 세션에 메시지 브로드캐스트
201214 broadcastMessageToRoom (roomId , messageJson );
@@ -223,9 +236,11 @@ private void broadcastMessageToRoom(Long roomId, String message) {
223236 for (WebSocketSession session : roomSessions ) {
224237 try {
225238 if (session .isOpen ()) {
239+ log .debug ("Broadcasting to session {}" , session .getId ());
226240 session .sendMessage (new TextMessage (message ));
227241 } else {
228242 failedSessions .add (session );
243+ log .debug ("Session closed, adding to failed sessions: {}" , session .getId ());
229244 }
230245 } catch (IOException e ) {
231246 log .error ("메시지 브로드캐스트 중 오류: {}" , e .getMessage ());
0 commit comments