이번에 맡게 된 기능중 되게 쉽게 생각했는데 엄청 고생하고 있는 부분이 있다.


원리는 간단하다.

클라이언트가 요청을 보내고 서버는 응답을 보낸다. 이때 클라이언트로 가는 응답 이외에 다른 내용을 다른 브라우저에 띄워야 한다.

예를 들어 클라이언트가 정보를 요청하면 서버는 해당 클라이언트의 정보를 응답하기에 앞서 서버 브라우저에 요청이 왔음을 알리고 과정을 띄운다.

(과정이 진행되면 계속 내용을 추가해야한다)

라이브 콘솔 같은 개념이다.


여기서 문제가 되는 부분이 바로 저 서버 브라우저이다.


http 통신은 기본적으로 요청과 응답, 이렇게 한쌍이 존재해야한다. 하지만 위와 같은 과정의 경우엔 저 서버 브라우저는 요청한 사람이 없는데

응답을 받게되는 상황이 된다.


그래서 첫번째로 접근한 방법은 서버 브라우저가 response를 알아챌 수 있는가 였다. => 불가

html에 jquery를 암만 찾아봐도 response를 알아낼 방법은 없었다...


두번째로 접근한 방법은 정말 무시한 방법... 호출이 올때마다 서버 브라우저 내용을 가져와서 플라스크 서버에 캐싱을 한 후에

새로 들어온 내용을 추가 한 후 렌더링 하는 것이다...

무식무식..


세번째 방법은 채팅 프로그램처럼 socketio를 사용하는 방법이다.

현재까지는 이 방법이 제일 주효하다. 일종의 채팅과 같은 로직이기 때문이다.


네번째 방법은 polling, sse를 이용하는 방법.

polling, SSE는 위에서 언급했던 요청/응답의 한계를 벗어나 실시간으로 정보를 띄우기 위해 만들어진 방법들이다.

그렇기에 이를 적용하려 했으나 내 이해력이 문제가 되어 수많은 뻘짓 후 포기하였다.


socketio 같은 경우엔 한번 소켓만 연결하면 편하게 계속 정보를 보내면 됬으나 polling, SSE의 경우엔 url을 통해서 연결을 해줘야했다..

그리고 이후에 계속 서버에 요청을 하게끔 무한루프? 처럼 로직을 짜야하는데 서버상에서 내가 이를 어떻게 처리해야할지 이해가 안되다 보니

포기하게되었다.


좀더 찾아본 후에 예제 코드와 추가된 설명을 업데이트 해야지..



+ Recent posts