如何在Laravel应用程序中获取实时更新

时间:2016-01-18 10:52:26

标签: ajax laravel long-polling server-sent-events real-time-updates

我正在构建一个用户可以注册的Web应用程序,添加他们想要关注的twitters提要,并且他们的流会在他们关注的提要接收新帖子时更新。

我的平台是Laravel。但是,我无法想到实现网站实时更新方面的最佳方式。

我会使用一个定期调用的AJAX函数(例如每30秒),但随着用户数的增加,这个方法也会增加。

我研究过HTML5服务器端事件但不幸的是不支持IE。

在Laravel应用程序中实现此功能的最佳方法是什么?

谢谢,

尼克

3 个答案:

答案 0 :(得分:3)

你可以实时使用pusher或node.js.在laracast中,你会发现一个视频如何做到https://laracasts.com/series/intermediate-laravel/episodes/4

答案 1 :(得分:3)

您有两种选择:

  1. 流式传输(Websockets)
  2. 长轮询
  3. 您可以在此处阅读有关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运行在与通常应用程序不同的端口上,因此访问所有资产可能有点奇怪(取决于您的系统架构)。

    长轮询是一个非常长的http请求,可以持续长达几分钟,而不是每30秒发送一次请求,每次服务器返回响应时都会发送请求。这意味着如果服务器花了5分钟来返回响应,那么您每5分钟只发送一次请求。 (例如,没有理由提醒客户端没有任何改变,所以你可以睡觉(30)并再试一次)

    作为旁注,除非您需要实时数据,否则我认为长轮询更容易实现并使用laravel等框架。

答案 2 :(得分:1)

我使用Pusher获取实时数据,极易使用且存在Laravel包。

https://pusher.com/

https://github.com/vinkla/pusher