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"); }