PWA之推送伺服器(koa2 mysql pm2)

2021-09-27 12:11:58 字數 2125 閱讀 3299

koa2-pwa 是pwa推送伺服器的簡單實現,使用 koa2 開發,使用 mysql 資料庫儲存,使用 pm2 管理程序和日誌。

檢視 pwa前端專案實現

pwa 訊息推送功能依賴於service worker(簡稱sw),使用 vapid 協議。

-> server端使用 web-push 生成vapidkeys(publickey,privatekey)

-> server端儲存publickey,privatekey,前端儲存publickey

-> 前端sw使用加密後的publickey去訂閱並獲得訂閱物件,然後儲存到server端

-> server端在需要推送時獲取訂閱物件即可推送

// /db/config.js 儲存資料庫登入資訊

const config =

module.exports = config

// /db/index.js 資料庫相關操作

const mysql = require('mysql')

const config = require('./config')

const pool = mysql.createpool(config)

// some sql

module.exports =

/routes/notification.js:更多推送訊息配置項 notification options

const router = require('koa-router')()

const webpush = require('web-push')

const dbmodel = require('../db/index')

// vapid keys should only be generated only once.

// const vapidkeys = webpush.generatevapidkeys()

const publickey = '***'

const privatekey = '***'

const gcmapikey = 'pwa_lite_gcmapikey'

// 自定義,儲存在前端manifest.json

const mailto = 'mailto:[email protected]'

// send notification to client

const sendnotification = (pushsubscription, body) =>

webpush.setgcmapikey(gcmapikey)

webpush.setvapiddetails(mailto, publickey, privatekey)

// router prefix

router.prefix('/api/notification')

// user subscribe

router.post('/subscribe', async (ctx, next) =>

} let body =

} sendnotification(pushsubscription, body)

// do something

})module.exports = router

github

koa2需要nodejs 7.6以上版本。

# install pm2

npm install -g pm2

# install dependencies

npm install

# serve with hot reload at localhost:3000

npm start

# run with pm2

npm run prd

# or pm2 start bin/www

更多專業前端知識,請上

【猿2048】www.mk2048.com

伺服器推送之WebSocket 入門學習路程(一)

前言 之前弄即時通訊的時候看過伺服器推送的一些東西,其中包括websocket。當時有些大概的印象,但是當正在來弄的時候就發現有些認識是不正確或者片面的,廢話不說,下面開始 概況 目前支援websocket實現大概分為3類 僅就自己已知的 其中 tomcat的相對簡單,而且官方給的東西很清楚,只是稍...

koa2 vue搭建部落格 伺服器部署

macos可以直接如下登入 可參考 node安裝,注意安裝版本,可以檢視最新版本號,選擇安裝。由於npm,經常被牆,選擇安裝了 cnpm 直接執行下面的命令,要想安裝全域性,在此之前我們還要配置一下node環境變數才行 npm install g cnpm registry 可參考 npm安裝的全域...

AWS之EC2例項搭建LAMP伺服器

建立ec2例項,在安全組新增http 80 規則 步驟 1 準備 lamp 伺服器 1 使用putty連線到你的ec2例項上 ami 為 amazon linux2 2 檢查系統更新 ec2 user sudo yum update y3 安裝 lamp mariadb10.2 php7.2 和 p...