这种轮询可以接受吗(来自 Laravel 的 Angular 轮询数据)?

Posted

技术标签:

【中文标题】这种轮询可以接受吗(来自 Laravel 的 Angular 轮询数据)?【英文标题】:Is this kind of polling acceptable (Angular polls data from Laravel)? 【发布时间】:2020-05-04 16:15:20 【问题描述】:

我有一个论坛,我想在用户收到通知和消息后立即显示它们。我不希望他们需要刷新页面以查看是否发送了任何通知/消息,但我也不想实现第 3 方(如 Pusher),这就是为什么我认为我会进行轮询。

基本上,如果用户登录,轮询会在 Angular 中开始。每隔 10 秒,就会向 Laravel 后端发送一个请求,询问 MessageTable 是否有新行,如果是,则 Laravel 返回一个“true”响应,因此我在用户的配置文件菜单中显示一个红点。

当他们导航到个人资料时,他们会收到所有消息,包括新消息。 我不会在那里停止投票,以防他们稍后会收到更多新消息。仅当用户手动注销时,我才会取消投票。

这可以接受吗?我应该在某个时候“清除”一些东西,这样网站就不会在客户端崩溃,还是没问题?

感谢您的回答!

【问题讨论】:

【参考方案1】:

我认为这不是一个合适的解决方案。由于持续轮询会通过每 10 秒调用一次而耗尽支持的资源,其中 99% 的时间没有任何新数据。因此,我建议您使用 laravel 查看 websocket 实现,并使用 angular 通过 websockets 进行连接。查看这篇文章了解更多详情https://medium.com/dailyjs/real-time-apps-with-typescript-integrating-web-sockets-node-angular-e2b57cbd1ec1。

【讨论】:

这篇文章似乎是关于 angular + nodejs,而不是 Laravel。

以上是关于这种轮询可以接受吗(来自 Laravel 的 Angular 轮询数据)?的主要内容,如果未能解决你的问题,请参考以下文章

服务层应该接受来自控制器的 DTO 或自定义请求对象吗?

Corona sdk 应用程序 - 它可以接受来自应用程序外部的文件吗?

使用 Laravel 在 Azure 中来自单个请求的多个重复 HTTP 请求/查询

Laravel 中的 Socket.io 轮询 404

Laravel 中 AJAX 轮询期间的 TokenMismatchException

有人在 Laravel 播种的 Algolia 上遇到过这种情况吗?