Fully Responsive Theme
Resize your Browser to see the Effect
Parallax Effect
Scroll and Notice the Header Image

롱폴링 예제

이들은 파이썬에서 간단한 게시 / 구독 웹 응용 프로그램을 구현하는 데 필요한 거의 모든 부분입니다. pubsub_example 리포지토리에서 작동하는 프로젝트에 함께 배치된 모든 부분을 볼 수 있으며 http://pubsub.example.oddbit.com 실행 중인 코드를 사용해 볼 수 있습니다. 리포지토리의 코드는 이 문서에 제시된 코드보다 약간 더 완벽합니다. 예제 사용 사례는 매우 간단합니다. 우리는 (GitHub / Twitter/.) 같은 웹 사이트에서 활동 목록을 스트리밍 하는 대시보드 웹 앱을 개발 해야 합니다. 등). 이 응용 프로그램의 목적은 이전에 나열된 다양한 방법 중 오른쪽 하나를 선택하는 것입니다. 서버 전송 이벤트를 사용할 수 있는 응용 프로그램의 몇 가지 간단한 예: 이 zip에는 위의 두 가지 예가 있습니다. 두 번째 예제를 사용하려면 먼저 .sql 파일을 MYSQL 데이터베이스로 가져온 다음 호스트 이름, 사용자 이름, 암호 및 데이터베이스로 config.php를 변경합니다. 진행 은 진행 상황을 낳고, 자연스럽게 개발자는 자신의 기능에 “실시간”측면의 더 많은 응용 프로그램을 구현하는 방법을 모색하기 시작했다.

웹 기반 채팅방과 간단한 게임은 당시의 초기 사례였습니다. HTTP 프로토콜은 이러한 종류의 사용 사례를 구현하기가 매우 어려웠으며, 서버가 새 데이터를 사용할 수 있게 될 때마다 사전에 사용자에게 알릴 방법이 없기 때문에 응용 프로그램이 반복적으로 새 데이터를 확인하기 위해 서버를 폴링하는 것을 보는 것이 일반적이었습니다. 이 방법의 극단적인 비효율성을 감안할 때 HTTP 요청 응답 모델을 더 많은 실시간 매체로 조작하는 창의적인 방법이 등장하기 시작했습니다. 이러한 기술 중 가장 인기있는 것은 “긴 폴링”이었습니다. 이 예제는 쿠키를 기반으로 합니다. 첫 번째 요청에서는 lastUpdate라는 쿠키를 만들고 클라이언트의 브라우저로 보냅니다. 이 쿠키는 브라우저로 전송된 file.txt의 마지막 파일 수정 시간을 저장합니다. 동일한 클라이언트의 여러 HTTP 요청이 동시에 비행할 수 있기 때문에 신뢰할 수 있는 메시지 순서는 긴 폴링에서 문제가 될 수 있습니다. 예를 들어 클라이언트에 동일한 서버 리소스를 사용하는 두 개의 브라우저 탭이 열려 있고 클라이언트 측 응용 프로그램이 localStorage 또는 IndexedDb와 같은 로컬 저장소에 데이터를 유지하는 경우 중복 데이터가 보다 더 많이 기록되지 않는다는 기본 제공 보장은 없습니다. 일단.

클라이언트 구현에서 의도적으로든 코드의 버그로 인해 한 번에 두 개 이상의 연결을 사용하는 경우에도 이러한 일이 발생할 수 있습니다. 나는 당신을 위해 두 가지 예를 만들었습니다. 이 하위 항목의 끝에 두 예제의 .zip 파일을 다운로드할 수 있습니다. 1995년, 넷스케이프 커뮤니케이션즈는 브렌던 아이히를 고용하여 넷스케이프 네비게이터에서 스크립팅 기능을 구현했으며, 10일 동안 자바스크립트 언어가 탄생했습니다. 언어로서의 기능은 처음에는 현대 자바스크립트에 비해 매우 제한적이었으며 브라우저의 문서 개체 모델(DOM)과 상호 작용하는 능력은 훨씬 더 제한적이었습니다. JavaScript는 문서 사용 기능을 보강하기 위한 제한된 향상된 기능, 브라우저 내 양식 유효성 검사 및 기존 문서에 동적 HTML을 가볍게 삽입하는 데 주로 유용했습니다. 작동 방식: 클라이언트는 아직 수신되지 않은 데이터를 요청하기 위해 일반적인 방법으로 HTTP 끝점에 요청을 합니다. 사용할 수 있는 새 데이터가 없는 경우 서버는 데이터를 사용하여 응답할 수 있을 때까지 요청을 열어 두는 것입니다. 새 데이터를 사용할 수 있게 되지 않고 충분한 시간이 경과하면 서버는 시간 시간 지정 응답을 보냅니다. 서버대기 시간은 클라이언트가 지정하거나(예: 헤더 또는 쿼리 매개 변수를 통해) 서버가 고정 된 기본값을 사용할 수 있습니다. 응답을 받은 후(새 데이터 또는 시간 표시) 트랜잭션이 완료됩니다.

This entry was posted in Uncategorized.