我正在开发一个Restful Web 应用程序。我分前端和后端,前端使用Angular2,后端使用NodeJS。
我想使用通知并将它们推送给特定用户。
示例:如果我的用户决定订阅,当我决定发送一个通知或者我的 NodeJS 服务器想要向用户组发送消息时,他会收到桌面通知。
我见过很多前端和后端的不同模块,但我有点迷路。
在架构上,我应该如何在我的应用程序中添加这个服务? 我应该使用特定的 Node 模块吗?
最佳答案
您谈论的是桌面通知。我想您希望用户在浏览器或应用程序关闭时也能收到通知。在这种情况下,您需要一个 Service Worker
。 Service Worker
是您的浏览器在后台运行的脚本,当浏览器或应用程序关闭时,消息将推送到该脚本。如需详细了解 Service Workers
,read this . Angular 从 5.0.0 开始在生产版本中实现了 Service Workers
。点击here to read more about it .
在后端,您需要一个特殊的 Node 模块来发送通知。例如node-pushserver , 但还有很多其他的。这个特殊的 Node 模块连接到实际发送消息的消息服务。例如,您可以使用 Google 的跨平台消息传递解决方案 Firebase Cloud Messaging (FCM)
(Google Cloud Messaging (GCM)
的后继者)。它可以发送到 Web、iOS 和 Android。
在客户端,您需要为推送通知注册 Service Worker
。然后你会得到一个endpoint
需要存放在node server端。您每次使用此端点
向消息服务发送推送请求。
您还可以使用付费推送通知提供商来完成这项工作。 Click here for a list of them .
设置 WebSocket
连接(如 socket.io
)将无法工作,因为它无法与 Service Worker
保持连接.
关于node.js - 推送通知 RESTful WebApp Angular2/NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292402/