SSE

    [Nginx] SSE 통신할 때, Connection Timeout..

    문제상황 로컬에서 잘 되던 연결이 서버에 배포를 하고 테스트를 하니 클라이언트가 받지를 못하고 Connection Timout이 나는 것이다.. 딱히 특별한 에러로그도 없어서 왜이러나 하고 이것 저것 찾아본 결과 Nginx 쪽에서 문제가 있던 것을 알 수 있었다. 원인 현재 클라이언트와 WAS 사이에는 프록시 서버로 Nginx 웹 서버를 사용하고있는데, Nginx는 기본적으로 Upstream으로 요청을 보낼 때, HTTP/1.0 버전을 사용한다. 연결을 위해서는 Http버전은 1.1 , Connectoin:keep-alive로 통신을 해야한다. 클라이언트에서 백엔드서버로 요청을 할 때에는 맞게 보내지만 Nginx에서 백엔드 WAS 프록시하여 요청을 전달할 때는 HTTP/1.0 버전을 사용하고 Connec..

    2023.11.07 TIL

    오늘 한 것 개인 프로젝트 개인프로젝트 SSE 방식으로 알림 기능을 구현했는데, 오늘 회의를 통해 앱 푸시와 알림은 다르다는 것을 알게되었다.. 생각해보니 SSE 구독을 위해선 앱을 켜야 되는데, 보통 앱을 안켜도 푸쉬알림이 온다. 앱 푸쉬는 구글의 FCM으로 구현 가능하다고 하니, 내일 일어나서 알아봐야겠다. 결론: 1. 알림 기능 만들어놓은게 무쓸모가 되었음.. 그래도 공부하고 구현이 가능하니 나중에 웹 개발할 때 요긴하게 써먹어야겠다. 2. FCM 구현 가자!

    2023.11.06 TIL

    오늘 한 것 개인 프로젝트 개인프로젝트 어제에 이어서 구현하던 알림기능을 다 만들었다. 다양한 통신 방식 (폴링, 웹소켓 SSE(Server-Sent-Event) 중 SSE 방식으로 통신하는 것을 채택했고 Spring에서는 seeEmitter API를 통해 편리하게 구현할 수 있게 제공해서 해당 API를 이용하여 구현하였다. Server -> Client 통신 방식에 관련해서는 https://velog.io/@dev_jazziron/Polling-Long-Polling-SSE-WebSocket Polling / Long Polling / SSE / WebSocket 클라이언트가 http request를 서버로 계속 보내서 이벤트 내용을 전달 받는 방식클라이언트가 계속적으로 request를 보내기 때문에..