본문 바로가기

Web Socket

(5)
Spirnb WebSocket 서버 구현 WebSocket을 이용한 채팅 서버 구축 가장 일반적인 방식으로 먼저 채팅 서버를 구축해보겠다. 이전 포스팅에서 WebSocket, SockJs를 공부하고 소개했다 해당 부분을 이용하여 채팅서버를 구축하는데 목표를 가지고 진행을 했다. WebSocket https://daliy-dev.tistory.com/34 WebSocket WebSocket이란? WebSocket이란 프로토콜의 일종으로 서버와 클라이언트간에 Socket Connection을 유지함으로써 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술이다. 이는 통상적으로 Client daliy-dev.tistory.com SockJs https://daliy-dev.tistory.com/35 WebSocket - SockJs WebS..
WebSocket - SockJs WebSocket의 한계 웹 소켓은 HTML5 이후에 나왔기에 HTML5 이전에 기술에는 적용이 어렵다. Firefox, Chrome, Edge, Whale 과 같은 브루아저에서는 동작을 하지만, 모바일 크롬, IE에서는 WebSocket이 동작하지 않으며, 모든 클라이언트와 브라우저에서 WebSocket을 보장해주지 못한다. Proxy 서버가 Upgrade 헤더를 해석하지 못할 수 있으며, 유휴 상태에서 자체적으로 connection을 종료시킬 수도 있다. 해결 방안 이를 해결 하기 위해서는 WebSocket Emulation을 이용한다 최초 WebSocket 연결을 시도하고, 실패 할 경우 HTTP Streaming, Long-polling 같은 HTTP 기반의 다른 기술로 전환하여 다시 연결을 시도..
WebSocket WebSocket이란? WebSocket이란 프로토콜의 일종으로 서버와 클라이언트간에 Socket Connection을 유지함으로써 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술이다. 이는 통상적으로 Client가 요청을 보내는 경우에 Server가 응답을 하는 단방향 통신인 HTTP와 다르게 실시간으로 클라이언트와 서버가 원할 때 데이터를 주고 받는다. 하여, 연속된 데이터를 빠르게 노출 할 수 있음으로 실시간 네트워킹이 필요한 채팅, 주식 등에 사용되어지고 있다. WebSocket 이전 기술 1. Polling 폴링이란 realTime 웹을 위한 기법으로, 일정한 주기를 가지고 서버와 응답을 주고 받는 방식을 말한다. 폴링은 일정한 주기를 통하여 이벤트를 감지함으로 통신 발생을 정확히 ..
Spring STOMP 프로토콜 사용 채팅 서버 구축 고민점 다중 서버 세션관리는 어떻게 구현해야할까? 메세지 전달 방식 및 클라이언트 서버 구성은 어떻게 해야할까? 오늘은 간단한 테스트로 WAS + NoSQL + Redis로 테스트 개발로 진행했다. Redis를 이용하여 pub/sub 방식의 STOMP 프로토콜로 진행해보고자 한다. NoSQL 몽고 디비를 사용하였고 NoSQL을 이용하하여 채팅방 설정 정도로 간단하게 적용해보았다. Redis redis를 통하여 pub/sub 방식으 채널 구독자가 메세지를 가져감으로써 다중 서버에서도 메세지 교환이 원할하게 이루어질 수 있게 진행했다. 추후에 해당 내용을 정리 할 예정이다. WAS (Spring boot) spring boot + thymeleaf로 하나의 WAS에서 처리하는 방식으로 진행했..
Spring Web Socket 서버 생성 프로젝트 시작 개요 웹서버를 주로 만지고 채팅은 따로 구현해본 기억이 없고, 개인적으로 하고있는 프로젝트에 사이드 프로젝트로 웹 채팅을 만들어보고자 한다. 주로 우리가 많이사용하고있는 HTTP 웹 서버는 stateless로 소켓을 유지하고있지 않으며, 한번 통신후 연결을 해제 해 버린다. 채팅은 좀 다른 개념으로가야한다 HTTP 통신이 아닌 TCP 소켓 통신을 통하여 연결하여 서로간의 메세지를 교환하다 세션을 종료해주는 방식으로 생각하고있다. STOMP 프로토콜의 pub/sub를 이용한 통신을 통해도 채팅서버 구축이 가능 해보인다. 필자는 일단 간단하게 만들어보는 수준으로 주로 사용하고있는 기술 스프링부트를 이용하여 소켓 통신 채팅서버를 만들어보려한다. 간단하게 의존성 몇개주입하고 만들었다. 웹 소켓 C..