我正在为自己建一个网站。我使用MongoDB,feathers.js,Node.js和Angular 5。我想为它添加通知。它看起来像通知的StackOverflow。
我不需要推送通知。我只想要一个红色的突出显示,就像通知的StackOverflow一样,当我做一些特定的事件。我是新的,所以请给我的细节,我需要写的前端和后端或一些关于它的好来源。提前感谢。
发布于 2019-04-13 21:58:40
创建一个通过HTTP从服务器端请求通知的服务。应该显示红点的组件将使用该服务,并根据该服务的响应更改其状态。下面是使用HTTP:HTTP in Angular的示例,因此,创建一个从服务器通知请求的服务。然后,利用您创建的服务创建一个执行表示逻辑的组件(这是通过依赖项注入完成的,如here)。
发布于 2019-04-13 22:09:16
有两种方法可以实现这一点。
这两种方法都有其优缺点,轮询的实现速度要快得多,但当您有数百万客户时,这并不是一个好的做法,因为您的服务器资源会被占用。此外,轮询会有一些延迟发送通知,因为它是客户端依赖的。
Advice:如果你开始为几千个用户或爱好项目实现,那么就去投票吧。只有当您迫切需要显示零延迟通知,并且您的客户群至少有数百万时,才考虑套接字连接。
发布于 2019-04-15 07:44:11
如果你正在使用带羽毛的socketio,那么很容易实现它。
在event channels上阅读有关它的信息。
这个想法是在您的服务器中创建一个通道,以通过套接字获得连接的用户。
app.on('connection', connection => {
app.channel('anonymous').join(connection);
});
然后,如果调用了服务方法,则通知通道中的连接。
app.service('notifications').publish('created', (data, context) => {
return app.channel('anonymous');
});
然后,在您的客户端,您将通过侦听该方法事件来获取发布的数据。
app.service('notifications').on('created', notification => {
console.log('notification created', notification);
});
然后,如果您想要一个真实的示例,请尝试feathers chat
https://stackoverflow.com/questions/55661611
复制相似问题