현재 이러한 시나리오는 많이 있습니다. 백그라운드 데이터가 변경되면 페이지를 새로 고치도록 프런트 데스크에 적극적으로 "알려야" 합니다.
폴링
p>이해하기 쉽고 구현이 매우 간단합니다. 클라이언트는 최신 데이터를 다시 가져오기 위해 가끔씩 백그라운드로 요청을 보냅니다.
물론, 예약된 작업의 시간을 상대적으로 길게 설정하면 단점도 분명합니다. 예약된 작업의 시간을 상대적으로 짧게 설정하면 데이터 업데이트 및 표시가 시기 적절하지 않게 됩니다. 백그라운드에 자주 액세스하면 백엔드 서버에 대한 부담도 증가합니다.
장기 폴링
폴링인 경우 클라이언트가 백그라운드에서 데이터를 요청할 때마다 긴 폴링으로 연결이 설정되고 클라이언트는 서버에 요청을 보냅니다. 즉, 최신 데이터가 있으면 바로 반환하고, 최신 데이터가 없으면 기다렸다가 새 데이터가 있으면 반환합니다.
단점도 뚜렷하다. 연결을 유지하는 것도 리소스를 소모하고, 오랫동안 새로운 데이터가 없으면 타임아웃이 발생하기 때문이다.
Iframe
이 방법의 핵심은 Iframe을 기반으로 하는 HTTP 긴 연결을 구현하는 것입니다. HTML 페이지에 암시적 Iframe을 삽입한 다음 src 속성을 긴 연결로 설정합니다. 그러면 서버는 Iframe으로 데이터를 전송할 수 있습니다.
긴 링크를 유지하려면 오버헤드가 증가해야 하며, 연결 중단, 재연결 등의 문제를 고려해야 합니다.
WebSocket
HTTP 프로토콜의 단점은 HTTP 프로토콜이 클라이언트의 요청만 시작할 수 있고 요청은 응답에 대응해야 한다는 것입니다(긴 링크의 경우에도 마찬가지) ).
WebSocket은 클라이언트와 서버 사이에 채널을 설정하고 실제 긴 링크를 설정합니다. WebSocket 통신 연결이 설정되면 서버 또는 클라이언트가 상대방에게 직접 메시지를 보낼 수 있습니다. 진정한 양방향 통신이며 데이터 형식은 텍스트 또는 바이너리 데이터일 수 있습니다.
자바 개발, 아키텍처 디자인, 프로그래머 경력 개발 등에 대한 저의 통찰을 앞으로도 공유할 예정이니 많은 관심 부탁드립니다.