我正在构建一个 Web 应用程序,用户可以在其中注册、添加他们想要关注的 twitter 提要,并且他们的信息流将随着他们关注的提要收到新帖子而更新。
我的平台是 Laravel。但是,我想不出实现站点实时更新方面的最佳方法。
我会使用一个定期调用的 AJAX 函数(例如每 30 秒),但随着用户数量的增加,这种方法有其缺点。
我已经研究过 HTML5 服务器端事件,但不幸的是不支持 IE。
在 Laravel 应用程序中实现此功能的最佳方法是什么?
谢谢,
缺口
最佳答案
你有两个选择:
您可以在此处阅读有关 websockets 的更多信息:
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
您可以在此处阅读有关长轮询的更多信息:
https://www.quora.com/Why-would-HTTP-long-polling-be-used-instead-of-HTTP-Streaming-to-achieve-real-time-push-notifications
简而言之 :
websockets 运行在与您常用的应用程序不同的端口上,因此访问您的所有 Assets 可能有点奇怪(取决于您的系统架构)。
长轮询是一个很长的 http 请求,最长可以持续几分钟,而不是每 30 秒发送一次请求,而是每次服务器返回响应时发送一次。这意味着如果服务器用了 5 分钟来返回响应,那么您每 5 分钟只发送一次请求。 (例如,没有理由提醒客户端根本没有任何变化,因此您可以 sleep(30) 并重试)
作为旁注,除非您需要实时数据,否则我认为长轮询更容易实现和使用 laravel 等框架。
关于ajax - 如何在 Laravel 应用程序中获取实时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852906/