게이트웨이를 거치지 않고, 직접적으로 연결했을땐 아무런 오류가 없던 프로젝트가 게이트웨이 서버를 통해 연결을 시도하고나서, 아래와 같은 오류를 직면하였습니다.
만약에 프론트에서 에러가 발생했더라면 주소값의 문제나 소켓 관련 코드 점검 후 백앤드 서버로 가겠는데, 이건 바로 백앤드 서버에서 발생하여 쉽게 처리 됐네요
프론트에서 소켓 통신 하자마자 백앤드 서버에 HTTP 오류를 직면하는 걸 봐서는 웹소켓 프로토콜 ws으로 통신하지 않는다라고 생각이 들었습니다.
그래서 게이트웨이에 의존성을 추가하여 직접적으로 웹소켓 설정을 백앤드 서버에 있는 설정과 동일하게 갈려고 했으나 게이트웨이라 프로토콜만 적용하면 된다고 생각하에 구글링을 해보니 저와 같은 문제를 가진 유저가 있네요.
결론은 게이트웨이를 통해 웹소켓 연결을 처리하기 위해서는 게이트웨이 자체가 웹소켓 프로토콜을 이해하고 처리할 수 있도록 설정을 해줘야합니다.
@Bean
@Primary
WebSocketClient tomcatWebSocketClient() {
return new TomcatWebSocketClient();
}
@Bean
@Primary
public RequestUpgradeStrategy requestUpgradeStrategy() {
return new TomcatRequestUpgradeStrategy();
}