시그널R(SignalR)을 사용하는데 웹소켓(WebSocket)이 아닌 롱폴링(LongPolling)으로 연결되는 것을 확인했습니다.
그래서 시그널R의 'transport'설정을 웹소켓(HttpTransportType.WebSockets)으로 설정하였더니 연결되지 않는 현상을 목격했습니다.
롱폴링(HttpTransportType.LongPolling)으로는 연결된다는 것은 프론트엔드(frontend)의 시그널R설정이 잘못됐을 가능성은 낮다는 것을 의미합니다.
이런 경우 제3의 서버에서는 되는지 확인해 보는 것이 가장 좋은 방법입니다.
저의 경우 동일한 서버가 로컬에서 문제없이 동작하고 있어서 연결하면 정상적으로 동작했습니다.
이것은 프로그램 문제가 아니라 IIS 설정 문제라는 의미입니다.
가장 먼저 확인해야 할 것이 "WebSocket 프로토콜"이 설치되어 있는지입니다.
서버 관리자 > 역할 및 기능 추가 > Web Server(IIS) > Web Server > Application Development > WebSocket Protocol
설치 후에 IIS를 재시작하면 웹소켓이 정상적으로 작동합니다.
매번 IIS 설치할때 응용프로그램 개발 쪽은 항상 체크하므로 이 실수를 금방 찾지를 못했습니다 ㅎㅎㅎ