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-gcmZainstaluj Socket.io:
npm install socket.ioUtwó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 .