Node.js
Wyślij powiadomienie internetowe
Szukaj…
Wysyłaj powiadomienia internetowe za pomocą GCM (Google Cloud Messaging System)
Taki przykład to wiedza o szerokim rozpowszechnianiu wśród PWA (progresywnych aplikacji internetowych), aw tym przykładzie wyślemy proste powiadomienie typu backend za pomocą NodeJS i ES6
Zainstaluj moduł Node-GCM:
npm install node-gcm
Zainstaluj Socket.io:
npm install socket.io
Utwórz aplikację obsługującą GCM za pomocą Google Console.
Chwyć swój identyfikator aplikacji GCM (będziemy go później potrzebować)
Złap swój tajny kod aplikacji GCM.
Otwórz swój ulubiony edytor kodów i dodaj następujący kod:
'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: Używam tutaj specjalnego hacka, aby Socket.io działał z Express, ponieważ po prostu nie działa poza pudełkiem.
Teraz utwórz plik .json i nazwij go: Manifest.json , otwórz go i wykonaj następujące czynności:
{
"name": "Application Name",
"gcm_sender_id": "GCM Project ID"
}
Zamknij i zapisz w katalogu ROOT aplikacji.
PS: plik Manifest.json musi znajdować się w katalogu głównym, inaczej nie będzie działać.
W powyższym kodzie wykonuję następujące czynności:
- Skonfigurowałem i wysłałem normalną stronę index.html, która również użyje socket.io.
- Słucham zdarzenia połączenia uruchomionego ze strony frontowej, czyli mojej strony index.html (zostanie uruchomione, gdy nowy klient pomyślnie połączy się z naszym wstępnie zdefiniowanym linkiem)
- Wysyłam specjalny token znany jako token rejestracyjny z mojego index.html poprzez zdarzenie socket.io new_user , taki token będzie naszym unikalnym hasłem użytkownika, a każdy kod jest generowany zwykle z przeglądarki obsługującej interfejs API powiadomień internetowych (czytaj więcej tutaj.
- Po prostu używam modułu node-gcm , aby wysłać moje powiadomienie, które zostanie obsłużone i wyświetlone później przy użyciu Service Workers `.
Jest to z punktu widzenia NodeJS . w innych przykładach pokażę, jak możemy wysyłać niestandardowe dane, ikony ... itd. w naszym komunikacie push.
PS: tutaj znajdziesz pełne działające demo .