Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions src/pages/Chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
9 changes: 9 additions & 0 deletions src/services/websocket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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()) {
Expand Down Expand Up @@ -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");
}

Expand Down