Spring으로 웹소켓을 작성하기 이전에 몇가지 더 알아야 할 개념이 있다
Websocket으로 양방향 통신이 가능해졌지만, 이번에는 호환성이 문제였다
HTML5 이후에 생겨났기 때문에, 그 이전 버전은 지원하지 않는다는 것이 문제!
그렇다면 어떻게 HTML5 이전이던 이후던 양방향 통신을 쓸 수 있을까?
해서 나온 것이 바로 SockJS 이다!
앞서 말했듯이 HTML 버전에 따른 Websocket 호환성 문제로 나온 라이브러리이다
해당 라이브러리는 버전에 상관없이 양방향 통신이 가능하도록 구현했다
더 정확히 말하자면 다음과 같다
1. Websocket 연결 시도
2. 실패 -> 지원하지 않음
3. Long Polling 등으로 양방향 통신 시도
즉 Websocket이 안되면 앞서 설명한 롱 폴링 기술을 써서라도 모두 양방향 통신이 가능하도록 구현한 것!
이 때문에 다양한 환경에서도 양방향 통신이 가능하고, 웹소켓이냐 롱 폴링이냐 선택할 필요없이 SockJS만 사용하면 되는 유연함을 제공한다