Node.js
Webbenachrichtigung senden
Suche…
Webbenachrichtigung mit GCM (Google Cloud Messaging System) senden
In diesem Beispiel ist eine weite Verbreitung unter PWAs (Progressive Web Applications) bekannt, und in diesem Beispiel werden wir eine einfache Benachrichtigung über das Backend senden, die NodeJS und ES6 verwendet
Node-GCM-Modul
npm install node-gcm
:npm install node-gcm
Installieren Sie Socket.io:
npm install socket.io
Erstellen Sie eine GCM-fähige Anwendung mithilfe von Google Console.
Grabe Ihre GCM-Anwendungs-ID (wird später benötigt)
Grabe Ihren GCM-Anwendungsgeheimcode.
Öffnen Sie Ihren bevorzugten Code-Editor und fügen Sie den folgenden Code hinzu:
'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
PS: Ich benutze hier einen speziellen Hack, damit Socket.io mit Express funktioniert, weil es einfach nicht außerhalb der Box funktioniert.
Erstellen Sie nun eine .json- Datei und benennen Sie sie: Manifest.json , öffnen Sie sie und hinterlassen Sie Folgendes:
{
"name": "Application Name",
"gcm_sender_id": "GCM Project ID"
}
Schließen Sie es und speichern Sie es in Ihrem ROOT- Verzeichnis der Anwendung.
PS: Die Datei Manifest.json muss sich im Stammverzeichnis befinden, sonst funktioniert sie nicht.
Im obigen Code mache ich Folgendes:
- Ich habe eine normale index.html-Seite eingerichtet und gesendet, die auch socket.io verwenden wird.
- Ich höre ein Verbindungsereignis an , das vom Frontend aus ( dh meine index.html-Seite) ausgelöst wird (es wird ausgelöst, wenn ein neuer Client erfolgreich mit unserem vordefinierten Link verbunden ist).
- Ich sende ein spezielles Token-Know-how als Registrierungstoken aus meiner index.html über das socket.io new_user -Ereignis. Dieses Token ist unser benutzer-eindeutiger Passcode. Jeder Code wird normalerweise von einem unterstützenden Browser für die Webbenachrichtigungs-API generiert (lesen Sie mehr Hier.
- Ich verwende einfach das node-gcm- Modul, um meine Benachrichtigung zu senden, die später in Service Workers `behandelt und angezeigt wird.
Dies ist aus der Sicht von NodeJS . In anderen Beispielen werde ich zeigen, wie wir benutzerdefinierte Daten, Symbole usw. in unserer Push-Nachricht senden können.
PS: Die vollständige Funktionsdemo finden Sie hier.