Tag: 服务工作者

使用NodeJS和ExpressJS托pipe静态渐进式Web应用程序(PWA)

我正在尝试使用ExpressJS来托pipe一个静态的渐进式Web应用程序,但由于我对web dev相当陌生,所以我遇到了一些麻烦。 我发现了许多关于如何使用ExpressJS进行路由的精彩文章(请参阅下面的链接),但没有一篇能够帮助我解决问题。 这些教程是相当基本的,我找不到任何更先进的教程 – 如果你们知道任何请回复此线程并将其链接! https://www.tutorialspoint.com/nodejs/nodejs_express_framework.htm https://stormpath.com/blog/build-nodejs-express-stormpath-app https://zellwk.com/blog/crud-express-mongodb/ https://www.codementor.io/nodejs/tutorial/build-website-from-scratch-using-expressjs-and-bootstrap 我的文件夹结构如下所示: node_modules package.json server.js index.html sw.js (service worker) public/ js/ index.js style/ index.css 和我的server.js看起来像这样: var express = require('express'); var app = express(); // Initialize static content app.use(express.static('public')); app.get('/index.html', function(req, res) { res.sendFile(__dirname + '/index.html'); }); app.listen(8887); 在我的index.html我加载我的public / style / index.css样式表和public / js / index.js […]

如何检查FCM消息状态?

我如何收到FCM的确认,收到了一条消息? 我有一个渐进的networking应用程序,检查用户是否有一个保存在数据库中的fcm令牌,如果他们这样做,并使用FCM,如果他们不这样做,并诉诸于SMS(通过twilio)。 问题在于即使closures浏览器,也会logging“”成功发送fcm消息“,因为消息排队等待浏览器重新打开。 我怎么能告诉用户实际上收到了一条消息,而不是等待在一个队列中? 如果Chrome已closures,则需要立即发送短信。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const serviceAccount = require('./service-account.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: `https://${process.env.GCLOUD_PROJECT}.firebaseio.com` }); function sendFCM(uid, title, body) { const payload = { notification: { title: title, body: body, click_action: "https://www.google.com" } }; const payloadOptions = { timeToLive: 0 }; getUserDetails(uid).then((details) => { if (details.fcmToken !== […]

服务工作人员不能以脱机模式与节点js服务器一起工作

我正在尝试使用脱机的第一个策略来构buildPWA 。 源文件的服务器是一个NodeJS服务器 。 我目前正在一个本地主机节点服务器上testing这个(不确定它是否有影响?)。 服务人员+caching似乎很好,但在离线模式下,我只能得到Chrome离线页面 。 让我们进入细节: 通过http:// localhost:8080 / place / test url提供的页面有一些客户端JS,我在其中注册了一个Service Worker: client.js if ('serviceWorker' in navigator) { navigator.serviceWorker .register(rootPath+'/js/service-worker.js') .then(function() { console.log('Service Worker Registered'); }); } service-worker.js (基于Google PWA教程) var cacheName = 'myCacheVersion'; var filesToCache = [ '../', '../place/test', '../js/client.js', '../js/service-worker.js', "../css/style.css" ]; self.addEventListener('install', function(e) { console.log('[ServiceWorker] Install'); e.waitUntil( caches.open(cacheName).then(function(cache) […]

服务工作人员不能使用nodejs服务器以脱机模式运行

我已经创build了新的项目PWA。 当我开发没有使用节点js的(socket.io运行)只是在离线运行,如我所料,需要。 但在与nodejs服务器集成时。 当上网时,运行良好的应用程序不会有任何问题。 但是当我切换到离线模式我的服务工作不运行,但显示离线浏览器。 这是我的代码节点js服务器: var express = require('express'); var app = express(); var server = require('http').Server(app); var io = require('socket.io')(server); var cors = require('cors'); app.use(cors()); app.use(express.static(__dirname + '/')); app.use(function(req, res, next){ res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); }); io.on('connection', function(socket) { console.log('new connection'); socket.on('afterBid', function(data) { io.emit('bcCurrentBid', { current_bidding: data.auction_current_bidding, user_id_dominated: data.user_id_dominated […]

networking推送未知问题,WebPushError“收到意外的响应代码”400

在使用GCM和chrome进行networking推送的过程中。 我最近遇到了这个问题(几个小时前,一切仍然正常) 我不确定是否由于GCM的一些变化或云的停机时间而发生这种情况…任何信息将不胜感激。 我的代码 var payload = JSON.stringify({ title: 'notification title', body: 'message body' }); webPush.sendNotification(params.endpoint, { userPublicKey: params.userPublicKey, userAuth: params.userAuth, payload: payload }).then(function (res) { // console.log of stuff }) .catch(function(error){ console.log(error); process.exit(1); }); 跟踪: { WebPushError: Received unexpected response code at IncomingMessage.<anonymous> (/var/www/***/pwa/node_modules/web-push/index.js:264:20) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:926:12) at […]

服务工作者推送Angular2的通知

我试图拼凑通过服务工作者给用户推送通知的一般工作stream程。 我遵循这个 Google Developers服务人员推送通知教程,并且正在考虑如何在基于小型用户的Web应用程序中实现这种事情。 在我看来,支持推送通知的Web应用程序的一般工作stream程如下所示: 客户端访问应用 服务工作者产生推送通知端点 客户端将端点发送到服务器 服务器将端点与生成端点的当前用户相关联 每当您的应用程序会说通知值得发生时,服务器就会抓取与该用户关联的推送通知端点,并触发该通知端点向任何用户设备发送推送通知(可能在Chrome 50+等) 基本上我只是想确认一下我的这个技术的一般实现思路是否准确,否则如果我缺less一些东西的话会得到反馈。