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...