Skip to content

Commit

Permalink
feat:#226 sse 커스텀훅 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
cho-subin committed Nov 2, 2023
1 parent f5c3c57 commit da092ea
Showing 1 changed file with 27 additions and 16 deletions.
43 changes: 27 additions & 16 deletions src/hooks/useSSE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,38 @@ type chatAlarm = {
sender: string;
};

export const useSSE = (customRoomId: string, role: string) => {
console.log('useSSE', customRoomId);
console.log('role', role);
const [message, setMessage] = useState<chatAlarm[]>([]);
export const useSSE = (role: string, sellerId: number, userId: number) => {
const [eventSource, setEventSource] = useState(
new EventSource(`${import.meta.env.VITE_API_SSE_URL}/chat-alarm/${role}/${sellerId}`),
);
const [message, setMessage] = useState<chatAlarm>();

console.log(message);
console.log('useSSE', message);
console.log('role', role);
console.log('sellerId', sellerId);
console.log('userId', userId);

useEffect(() => {
const eventSource = new EventSource(
`${import.meta.env.VITE_API_SSE_URL}/chat-alarm/${role}/${customRoomId}`,
);

if (role === 'user') {
setEventSource(
new EventSource(
`${import.meta.env.VITE_API_SSE_URL}/chat-alarm/${role}/${sellerId}/${userId}`,
),
);
} else {
setEventSource(
new EventSource(`${import.meta.env.VITE_API_SSE_URL}/chat-alarm/${role}/${sellerId}`),
);
}

console.log('start');
console.log('eventSource', eventSource);

if (!eventSource) return;
eventSource.addEventListener('sse', function (event) {
const message = JSON.parse(event.data);
console.log('새로운 채팅 알람: ', message);
setMessage((prevMessages) => [...prevMessages, message]);
setMessage({ ...message });
});

eventSource.onerror = function (error) {
Expand All @@ -38,12 +54,7 @@ export const useSSE = (customRoomId: string, role: string) => {
console.log('EventSource closed');
}
});

return () => {
eventSource.close();
console.log('EventSource closed');
};
}, [customRoomId, role]);
}, [sellerId, role]);

return message;
};

0 comments on commit da092ea

Please sign in to comment.