我有一个论坛,我希望在用户收到通知和消息时立即显示它们。我不希望他们需要刷新页面来查看是否发送了任何通知/消息,但我也不想实现第三方(如Pusher),这就是为什么我认为我应该使用轮询。
基本上,如果用户已登录,轮询将在Angular中开始。每隔10秒,就会向Laravel后端发送一个请求,询问MessageTable是否有新的行,如果有,则Laravel会返回一个"true“响应,因此在angular中,我会在用户的配置文件菜单中显示一个红点。
当他们导航到配置文件时,他们会得到所有消息,包括新的消息。我不会在那里停止投票,以防以后他们会收到更多新消息。仅当用户手动注销时,我才取消订阅轮询。
这可以接受吗?我是不是应该在某个时刻“清除”一些东西,这样网站就不会在客户端崩溃,或者就没问题了?
感谢您的回复!
发布于 2020-05-04 16:22:34
我不认为这是一个合适的解决方案。因为持续轮询会耗尽备份上的资源,每隔10秒调用一次,其中99%的时间没有任何新数据。因此,我建议您使用laravel研究websocket实现,并通过websockets使用angular进行连接。请看这篇文章,了解更多详细信息https://medium.com/dailyjs/real-time-apps-with-typescript-integrating-web-sockets-node-angular-e2b57cbd1ec1。
https://stackoverflow.com/questions/61596752
复制