클라이언트 브라우저에 알림 푸시
슈퍼 사용자가 링크를 클릭하면 사용자가 화면에서 액세스할 수 있도록 pdf와 같은 콘텐츠나 알림을 받을 수 있는 애플리케이션을 만들고 싶습니다.
사용 사례:선생님이 PDF를 학생들과 공유하고 싶을 때, 그는 다운로드 가능한 PDF에 대해 학생들에게 알릴 수 있어야 하고, 그렇게 하기 위해서는 링크가 제공되어야 합니다.
이를 달성할 수 있는 몇 가지 방법이 있습니다.가장 지지되는 방법은 혜성 또는 롱폴링이라고 불리는 기술입니다.기본적으로 클라이언트는 서버에 요청을 보내고 서버는 어떤 이벤트가 발생할 때까지 응답을 보내지 않습니다.이는 서버가 클라이언트에게 푸시하고 있는 것 같은 착각을 불러일으킵니다.
클라이언트를 단순히 시뮬레이션하는 것이 아니라 실제로 클라이언트에 푸시할 수 있는 다른 방법과 기술이 있지만(예: 웹 소켓), 많은 브라우저가 이를 지원하지 않습니다.
이를 CakePHP로 구현하기를 원하시므로(따라서 웹 기반 애플리케이션이라고 가정합니다), 푸시 메시지를 수신하기 위해서는 사용자가 '활성' 페이지를 열어야 합니다.
이에 대한 첫 두 가지 답변을 살펴볼 가치가 있지만, 다른 사이트에서 이를 달성할 수 있는 방법에 대해서도 생각해 볼 필요가 있습니다.페이스북, BBC, 스택 오버플로우와 같은 사이트들은 모두 페이지를 최신 상태로 유지하기 위한 기술을 사용합니다.
Facebook은 주기적으로 업데이트를 푸시처럼 보이게 하기 위해 루프/타이머로 실행되는 일부 AJAX를 사용하는 것이 아닌가 싶습니다.업데이트 요청이 충분한 경우(짧은 시간) 거의 실시간으로 표시됩니다.시간이 길면 당기는 것처럼 보일 겁니다.최신성과 브라우저/프로세서/네트워크 스레싱 간의 적절한 균형을 찾는 것이 관건입니다.
실제 요청은 시스템을 스매싱하지 않아야 하지만, 일부 애플리케이션에서는 응답이 훨씬 더 클 수 있습니다.당신의 경우, 각 방향의 데이터가 작기 때문에 요청 루프를 상당히 짧게 만들 수 있습니다.
실험!
표준 HTTP 프로토콜은 서버에서 클라이언트로 푸시를 허용하지 않습니다.예를 들어 간격이 작은 AJAX 요청을 사용하여 이를 에뮬레이트할 수 있습니다.
php-amqplib과 RabbitMQ를 보세요.함께 AMQP(Advanced Message Queuing Protocol)를 구현할 수 있습니다.기본적으로 웹 페이지에 메시지를 푸시하여 업데이트할 수 있습니다.
[편집] 최근에 프로젝트를 위해 실행한 Pusher를 우연히 발견했습니다.HTML5 웹소켓 구동 실시간 메시징 서비스입니다.그것은 정말 잘 작동하고 무료 하위 계층 요금제를 가지고 있습니다.또한 구현이 매우 간단합니다.
node.js를 socket.io 과 함께 확인하고 express.좋은 출발점입니다.
언급URL : https://stackoverflow.com/questions/4899523/push-notification-to-the-client-browser
'programing' 카테고리의 다른 글
그 내용으로 디브의 키를 크게 하다. (0) | 2023.09.07 |
---|---|
Eclipselink: 임시 테이블의 열 길이 및 mb4 (0) | 2023.09.07 |
sqalchemy 엔진이 제공된 IP 대신 127.0.0.1에 연결하려고 합니다. (0) | 2023.09.07 |
컨테이너 이름에서 도커 컨테이너 ID 가져오기 (0) | 2023.09.02 |
구글의 콜라브에서 파이썬 패키지를 어떻게 설치합니까? (0) | 2023.09.02 |