Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 推送通知RESTful WebApp Angular2/NodeJS_Node.js_Rest_Angular_Push Notification - Fatal编程技术网

Node.js 推送通知RESTful WebApp Angular2/NodeJS

Node.js 推送通知RESTful WebApp Angular2/NodeJS,node.js,rest,angular,push-notification,Node.js,Rest,Angular,Push Notification,我正在开发一个Restful Web应用程序。我划分前端和后端,前端使用Angular2,后端使用NodeJS 我想使用通知并将其推送给特定用户 示例:如果我的用户决定订阅,当我决定发送通知时,或者如果我的NodeJS serveur想要向用户组发送消息,他可能会收到一个桌面通知 我已经看到了很多不同的前端和后端模块,但是我有点迷路了 在体系结构上,我应该如何在应用程序中添加此服务? 我应该使用特定的节点模块吗?您可以使用WebSocket从node.js服务器推送数据。将ws包添加到服务器的p

我正在开发一个Restful Web应用程序。我划分前端和后端,前端使用Angular2,后端使用NodeJS

我想使用通知并将其推送给特定用户

示例:如果我的用户决定订阅,当我决定发送通知时,或者如果我的NodeJS serveur想要向用户组发送消息,他可能会收到一个桌面通知

我已经看到了很多不同的前端和后端模块,但是我有点迷路了

在体系结构上,我应该如何在应用程序中添加此服务?
我应该使用特定的节点模块吗?

您可以使用WebSocket从node.js服务器推送数据。将ws包添加到服务器的package.json中。请在此处查看BidServer.ts:


Angular客户端在这里:

您谈论的是桌面通知。我猜您希望用户在浏览器或应用程序关闭时也能收到通知。在这种情况下,您需要一名
服务人员
服务人员
是浏览器在后台运行的脚本,当浏览器或应用程序关闭时,消息将被推送到该脚本。有关
服务人员的详细介绍,
。Angular从5.0.0开始在生产版本中实施了一个
服务人员
。克里克

在后端,您需要一个特殊的节点模块来发送通知。例如,但是还有很多其他的。此特殊节点模块连接到实际发送消息的消息传递服务。例如,您可以使用谷歌的跨平台消息传递解决方案
Firebase云消息传递(FCM)
(谷歌云消息传递(GCM)
)的继任者)。它可以发送到Web、iOS和Android

在客户端,您需要为推送通知注册
服务人员
。然后,您将获得一个需要存储在节点服务器端的
端点。每次都会使用此
端点向消息传递服务发送推送请求

您还可以使用付费推送通知提供程序来完成此工作


设置
WebSocket
连接(如
socket.io
)将不起作用,因为它无法与
服务人员保持连接

事实上,我想如果我使用WebSockets,我的客户端应用程序必须打开。如果我了解通知的工作原理,我应该能够向我的用户发送桌面通知,即使他们的浏览器已关闭?请参阅通知:在服务器上,您可以检查websocket是否已关闭,以不向关闭浏览器的客户端发送通知。您找到解决方案了吗?我有同样的问题。WebSocket不是解决方案,因为您的目标是向桌面发送通知,所以用户可以关闭浏览器并接收通知。请分享你的知识来帮助我和其他人。你可以回答你自己的问题,人们可以为此给予赞扬。最后,我们没有集成此功能。当时它是新的,所以我希望现在更容易集成。如果您发现了什么,请毫不犹豫地分享您的解决方案!我认为这种需求应该成为常态。太好了,这正是我想要的信息。Angular 5似乎填补了这些话题的空白。@LewisGodgiven-祝你好运!!