지금부터 말하는 트러블 슈팅은 단일 서버에서 하나의 웹소켓을 이용하는 경우엔 발생하지 않았을 것이다. 하지만 여러 path에 대해 웹소켓을 사용하고 있다면 이 문제에 부딪혔을 수도 있다. 아주 허무하지만, 상상도 못한 이슈 지금부터 시작하겠다.
시작에 앞서 프로젝트 구조를 간단히 설명하겠다. 백엔드는 두 개의 서버를 띄우고 있고, 엔진엑스가 가장 앞단에 위치하여 경로에 따라 다른 서버로 프록시한다.
<aside> 💡 NGINX 라우팅 정보
/signal
: 시그널링 서버/
: WAS 서버
</aside>두 서버 모두 웹소켓을 사용하고 있는데 아이너리하게 오직 시그널링 서버로의 소켓 요청만 동작하지 않았다.
was.tarotmilktea.com
was.tarotmilktea.com/signal
결론부터 말하자면, socket.io가 URL에다 /signal
을 붙여도 자동으로 떼어낸다. (우주먼지가 되어버린 소켓 요청)
io("<https://was.tarotmilktea.com/signal>");