수색…


GCM (Google Cloud Messaging System)을 사용하여 웹 알림 전송

이러한 예는 PWA (프로그레시브 웹 응용 프로그램) 간의 광범위한 확산을 알고 있으며이 예에서는 NodeJSES6을 사용하여 간단한 백엔드처럼 알림을 보냅니다

  1. 노드 -GCM 모듈 npm install node-gcm : npm install node-gcm

  2. Socket.io 설치 : npm install socket.io

  3. Google Console을 사용하여 GCM 사용 애플리케이션을 만듭니다 .

  4. GCM 애플리케이션 ID를 평가 해주세요 (나중에 필요합니다).

  5. GCM 애플리케이션 암호 코드에 등급을 지정하십시오.

  6. 자주 사용하는 코드 편집기를 열고 다음 코드를 추가하십시오.

     'use strict';
    
     const express = require('express');
     const app = express();
     const gcm = require('node-gcm');
     app.io = require('socket.io')();
     
     // [*] Configuring our GCM Channel.
     const sender = new gcm.Sender('Project Secret');
     const regTokens = [];
     let message = new gcm.Message({
         data: {
             key1: 'msg1'
         }
     });
     
     // [*] Configuring our static files.
     app.use(express.static('public/'));
     
     // [*] Configuring Routes.
     app.get('/', (req, res) => {
         res.sendFile(__dirname + '/public/index.html');
     });
     
     // [*] Configuring our Socket Connection.
     app.io.on('connection', socket => {
         console.log('we have a new connection ...');
         socket.on('new_user', (reg_id) => {
             // [*] Adding our user notification registration token to our list typically hided in a secret place.
             if (regTokens.indexOf(reg_id) === -1) {
                 regTokens.push(reg_id);
     
                 // [*] Sending our push messages
                 sender.send(message, {
                     registrationTokens: regTokens
                 }, (err, response) => {
                     if (err) console.error('err', err);
                     else console.log(response);
                 });
             }
         })
     });
      
     module.exports = app
    

추신 : 저는 Socket.io를 Express와 함께 사용하기 위해 특별한 해킹을 사용하고 있습니다. 단순히 상자 외부에서 작동하지 않기 때문입니다.

이제 .json 파일을 만들고 이름을 Manifest.json으로 하고 파일 이름을 열고 다음 내용을 지나치십시오.

{
    "name": "Application Name",
    "gcm_sender_id": "GCM Project ID"
}

그것을 닫고 응용 프로그램 ROOT 디렉토리에 저장하십시오.

추신 : Manifest.json 파일은 루트 디렉토리에 있어야합니다. 그렇지 않으면 작동하지 않습니다.

위의 코드에서 다음을 수행합니다.

  1. 나는 socket.io도 사용할 일반 index.html 페이지를 설정했다.
  2. 프론트 엔드 라고하는 내 index.html 페이지에서 시작된 연결 이벤트를 듣고 있습니다 (새 클라이언트가 미리 정의 된 링크에 성공적으로 연결되면 해고 될 것입니다)
  3. 나는 특별한 토큰을 socket.io new_user 이벤트를 통해 index.html의 등록 토큰 으로 보내고 있는데,이 토큰은 사용자 고유의 패스 코드가 될 것이고 각 코드는 일반적으로 웹 알림 API 를 지원하는 브라우저에서 생성된다. 이리.
  4. 나는 node-gcm 모듈을 사용하여 간단히 처리하고 서비스 근로자 를 사용하여 표시 할 내 알림을 보내고 있습니다.

이는 NodeJS 관점에서 나온 것 입니다. 다른 예에서는 맞춤 메시지, 아이콘 등을 보낼 수있는 방법을 보여줄 것입니다.

추신 : 여기 에서 전체 작업 데모를 찾을 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow