From 284e7c6fb5043fea90357d3bd3b6bf0f4558a9f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=95=9C=EC=9E=88=EB=8A=94-=EC=9C=A0=EC=A0=80?= =?UTF-8?q?=EB=84=A4=EC=9E=84?= Date: Thu, 16 Oct 2025 18:30:02 +0900 Subject: [PATCH] =?UTF-8?q?bugfix:=20open=20chat=20=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Chat.tsx | 14 ++++++++++++-- src/services/websocket.ts | 9 +++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/pages/Chat.tsx b/src/pages/Chat.tsx index 1a13a45..a7d6b61 100644 --- a/src/pages/Chat.tsx +++ b/src/pages/Chat.tsx @@ -119,9 +119,19 @@ const Chat = () => { wsMessage.nickname && wsMessage.message ) { - // 일반 채팅 메시지 처리 + // 자신이 보낸 메시지는 이미 화면에 추가했으므로 무시 + if (wsMessage.nickname === nickname) { + return; + } + + // 다른 사용자의 메시지만 화면에 추가 + console.log( + "다른 사용자 메시지 추가:", + wsMessage.nickname, + wsMessage.message + ); const newMessage: Message = { - role: wsMessage.nickname === nickname ? "user" : "assistant", + role: "assistant", content: wsMessage.message, nickname: wsMessage.nickname, mbti: wsMessage.mbti || undefined, diff --git a/src/services/websocket.ts b/src/services/websocket.ts index d1ccd63..a1781ed 100644 --- a/src/services/websocket.ts +++ b/src/services/websocket.ts @@ -48,6 +48,11 @@ export class OpenChatWebSocket { }; this.ws.onclose = (event) => { + console.warn("WebSocket 연결 종료:", { + code: event.code, + reason: event.reason, + wasClean: event.wasClean + }); this.notifyConnectionHandlers(false); if (!event.wasClean && this.shouldReconnect()) { @@ -81,10 +86,14 @@ export class OpenChatWebSocket { sendMessage(content: string) { if (!this.ws || this.ws.readyState !== WebSocket.OPEN) { + console.error("WebSocket 연결 안됨:", { + readyState: this.ws?.readyState + }); throw new Error("WebSocket is not connected"); } if (!this.config) { + console.error("WebSocket config 없음"); throw new Error("WebSocket config is not set"); }