웹 애플리케이션에서 Zustand와 STOMP WebSocket(Client)을 사용하여 WebSocket 연결을 관리하는 중, 불필요한 중복 연결과 자동 재연결 문제가 발생했습니다.
이를 해결하기 위해 reconnectDelay: 0
설정과 useEffect
의 실행 조건을 조정하여 웹소켓 연결을 안정적으로 유지하면서 중복 연결을 방지하는 방법을 적용했습니다.
reconnectDelay: 5000
이 활성화되어 있었음.useEffect(() => { connectWebSocket(); }, [connectWebSocket]);
사용 시,connectWebSocket
의 참조가 변경될 가능성이 있어 불필요한 실행이 발생할 수 있음.useEffect
가 실행될 때마다 connectWebSocket
이 호출될 위험이 있음.useEffect
의 cleanup 함수에서 disconnectWebSocket()
을 호출하면,Home 페이지를 벗어날 때 WebSocket 연결이 끊어져 다른 페이지에서도 유지할 수 없었음.reconnectDelay: 5000
으로 인해 자동 재연결 발생