확장 프로그램의 실시간 업데이트

실시간 업데이트는 서버에서 확장 프로그램 설치로 직접 즉각적인 통신 경로를 제공합니다. 이벤트가 발생할 때 데이터를 주고받을 수 있습니다. 채팅, 백그라운드 작업 트리거, 기기 데이터 동기화 등 여러 최신 서비스에서 사용하는 중요한 작업입니다. Chrome 확장 프로그램에서는 여러 가지 방법으로 실시간 커뮤니케이션을 사용할 수 있습니다.

  • 웹 푸시 또는 Push API는 모든 푸시 제공업체 또는 자체 웹 서버를 사용하여 Chrome 확장 프로그램에서 메시지를 주고받을 수 있게 하는 웹 표준입니다.
  • chrome.gcm은 Firebase 클라우드 메시징을 사용하여 메시지를 주고받을 수 있는 기존 확장 프로그램 전용 API입니다.
  • WebSockets는 Chrome 확장 프로그램과 서버 간의 양방향 연결을 열 수 있는 하위 수준 프로토콜입니다.

일반적인 시나리오

다음은 Chrome 확장 프로그램에서 실시간 커뮤니케이션이 중요한 몇 가지 일반적인 시나리오입니다.

사용자에게 변경사항을 최신 상태로 유지합니다.

여러 사용자 간에 파일, 설정 또는 기타 정보를 동기화하는 경우 웹 푸시는 확장 프로그램에 자동 업데이트를 전송하여 서버에서 상태를 업데이트하도록 알리는 완벽한 방법입니다.

사용자가 버그 또는 문제를 신고하도록 허용하나요? 푸시 제공자와 통합하여 공유할 업데이트가 있는 즉시 확장 프로그램에서 직접 알릴 수 있습니다.

사용자에게 알림을 보냅니다.

알림을 완전히 클라이언트 측으로 보낼 수도 있지만 누가, 무엇을, 어디서, 언제 알림을 보낼지에 관한 서버 측 로직이 있다면 웹 푸시보다 미래에 대비할 수 있는 옵션이 가장 적합합니다.

일부 사용자에게만 메시지를 보내려면 푸시가 가장 적합합니다. Firebase 클라우드 메시징은 Topics (채널이라고도 함)를 제공하지만 HTTP Cloud Messaging API에서만 사용할 수 있습니다. chrome.gcm에서 사용하는 기존 버전과는 다릅니다. 기존 버전의 Chrome (Chrome 121 이전)을 사용하는 사용자를 포함하여 모든 사용자에게 광범위한 메시지를 보내려면 chrome.gcm가 이상적인 옵션입니다. 기존 Firebase Messaging API를 기반으로 빌드된 chrome.gcm는 10년 이상 Chrome에서 지원되었습니다.

웹 푸시 또는 chrome.gcm를 사용하여 새 메시지가 도착하거나 파일이 공유될 때와 같이 계정에 중요한 작업이 발생할 때 사용자에게 알림을 보낼 수 있습니다.

채팅

양방향 커뮤니케이션이 자주 필요하신가요? 그렇다면 웹 소켓이 가장 적합한 옵션일 수 있습니다. 확장 프로그램과 서버 간에 양방향 연결을 열거나 다른 사용자와 직접 연결할 수도 있습니다. 이를 통해 데이터와 메시지를 실시간으로 교환할 수 있습니다 일반적으로 웹에서는 훌륭한 옵션이지만 확장 프로그램에서 몇 가지 제한사항이 있어 사용할 계획이라면 유의해야 합니다.

이 가이드의 나머지 부분에서는 사용 가능한 옵션을 자세히 살펴보겠습니다.

Push API를 사용한 푸시 알림

Push API를 사용하면 푸시 제공자를 통해 푸시 알림과 메시지를 보낼 수 있습니다. Push API에서의 푸시는 수신되는 즉시 서비스 워커에서 처리합니다. 확장 프로그램이 정지된 경우 푸시하면 다시 절전 모드를 해제합니다. 확장 프로그램에서 사용하는 프로세스는 오픈 웹에서 사용하는 과정과 완전히 동일합니다.

chrome.gcm을 사용한 푸시 알림

chrome.gcm API를 통해 웹 애플리케이션 및 모바일 앱에 실시간 업데이트를 전송하는 서비스인 Firebase 클라우드 메시징 (FCM)에 직접 연결할 수 있습니다. 이는 브라우저에서 Push가 제공되기 수년 전에 추가된 Chrome 전용 확장 프로그램 API입니다. 이 API는 현재 지원 중단된 Firebase의 기존 HTTP API를 사용하여 빌드되었습니다. 이러한 API는 다른 곳에서는 지원 중단되지만 확장 프로그램에서는 지원 중단되지 않습니다. 가까운 미래에 계속 작동할 것입니다. 하지만 기존 푸시 백엔드이므로 Topics와 같은 기능이 없습니다.

FCM 백엔드 서비스는 Chrome에서 사용자에게 알림을 보내기 위한 엄격한 요구사항이지만, 메시지를 보내기 위해 chrome.gcm를 사용할 필요는 없습니다. 모든 푸시 제공업체는 웹 푸시를 사용하여 Firebase 계정으로 메시지와 이벤트를 주고받을 수 있습니다. 아직 완전히 지원되는 Chrome Extension API이지만 이와 같은 확장 프로그램 관련 표준보다 Push API와 같은 웹 표준을 사용하는 것이 좋습니다. 사용 사례에 chrome.gcm을 사용하는 것이 가장 좋다면 chrome.gcm을 처음부터 설정하는 자세한 방법을 참고하세요.

WebSocket을 사용한 실시간 메시지

WebSockets는 10년 이상 웹에서 실시간 메시징의 초석이 되어 왔습니다. 웹상의 실시간 이벤트에 사용되는 기능으로, 지속적인 양방향 대화를 제공합니다. WebSocket은 콘텐츠 스크립트, 팝업, 측면 패널, 백그라운드 서비스 워커다양한 확장 프로그램 구성요소에서 작동합니다. 일반적으로 웹에서는 훌륭한 옵션이지만 확장 프로그램과 관련하여 몇 가지 제한사항이 있으며, 확장 프로그램을 사용할 계획이라면 염두에 두어야 합니다.

푸시 알림에 적합하지 않음

WebSocket은 chrome.gcm와 같은 확장 프로그램 플랫폼 API를 사용하는 대신 웹 플랫폼에서 실행되므로 확장 프로그램 외부에서 Websocket 연결이 시작될 때 Chrome은 확장 프로그램의 절전 모드를 해제할 방법이 없습니다.

활성 연결만

Chrome은 30초 후 사용되지 않는 확장 프로그램을 정지합니다. 다양한 휴리스틱이 Chrome에서 확장 프로그램이 '사용 중'인지(이 중 하나가 활성 WebSocket 연결인지) 확인합니다. Chrome은 지난 30초 동안 WebSocket 메시지를 보내거나 받은 확장 프로그램을 정지하지 않습니다. 확장 프로그램에서 WebSocket을 사용 중이며 조기 닫히지 않도록 해야 하는 경우 하트비트 메시지를 보내 연결을 유지할 수 있습니다. 여기에는 주기적인 메시지를 서버로 전송하여 서버와 Chrome 모두에 사용자가 여전히 활성 상태임을 알리는 것이 포함됩니다. websocket을 무기한으로 활성 상태로 유지하는 방법의 예는 WebSocket 문서를 참조하세요.