Node.js 网络推送库

Posted

技术标签:

【中文标题】Node.js 网络推送库【英文标题】:Node.js web-push library 【发布时间】:2016-09-27 13:33:39 【问题描述】:

我正在尝试使用 web-push node.js 库向 chrome 浏览器发送推送通知。

发射后

webpush.sendNotification(pushSubscription,payload)

我得到这个响应的方法 -

 Error: unable to verify the first certificate
at Error (native)
at TLSSocket.<anonymous> (_tls_wrap.js:1060:38)
at emitNone (events.js:86:13)
at TLSSocket.emit (events.js:185:7)
at TLSSocket._finishInit (_tls_wrap.js:584:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:416:38) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' 

我猜这是 SSL 问题?我如何通过 localhost 测试这个库?

谢谢

【问题讨论】:

Error: unable to verify the first certificate in nodejs的可能重复 你还能重现这个吗? 是的。当您使用 http 创建节点服务器时会发生这种情况。 【参考方案1】:

我通过使用 https 和正确的密钥创建 nodejs 服务器使其工作。

不确定这是否是正确的实现,但它为我们启动并运行。

const https = require('https');
const fs = require('fs');

const options = 
  pfx: fs.readFileSync('server.pfx')
;

https.createServer(options, (req, res) => 
    //Do push things
).listen(443);

【讨论】:

老实说,这很奇怪。我不明白这会有什么帮助。您能否提供更多示例代码并在项目上打开一个问题:github.com/web-push-libs/web-push/issues/new

以上是关于Node.js 网络推送库的主要内容,如果未能解决你的问题,请参考以下文章

01 . 部署Node.js项目

Node.js 不推送所有通知

node.js 和推送通知

如何发送推送通知 node.js everlive

使用 Node.js 创建 Safari 推送通知签名

在禁用客户端推送的情况下,有啥方法可以在 Node.js 上使用 Parse 发送推送?