我正在构建一个Web应用程序,用户可以在其中注册,添加他们想要关注的tweet提要,并且他们的流将随着他们正在追踪的提要接收新帖而更新。如何在Laravel应用程序中获得实时更新
我去平台是Laravel。但是,我想不出实现网站实时更新方面的最佳方式。
我会使用一个定期调用的AJAX函数(例如每30秒),但随着用户数量的增加,这种方法也存在缺陷。
我已经研究过HTML5服务器端事件,但不幸的是IE不支持。
在Laravel应用程序中实现此功能的最佳方式是什么?
感谢,
尼克
我正在构建一个Web应用程序,用户可以在其中注册,添加他们想要关注的tweet提要,并且他们的流将随着他们正在追踪的提要接收新帖而更新。如何在Laravel应用程序中获得实时更新
我去平台是Laravel。但是,我想不出实现网站实时更新方面的最佳方式。
我会使用一个定期调用的AJAX函数(例如每30秒),但随着用户数量的增加,这种方法也存在缺陷。
我已经研究过HTML5服务器端事件,但不幸的是IE不支持。
在Laravel应用程序中实现此功能的最佳方式是什么?
感谢,
尼克
可以使用推或node.js中的realtime.In laracast你会发现视频怎么做https://laracasts.com/series/intermediate-laravel/episodes/4
你有两个选择:
你可以阅读更多有关的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。
感谢您的回复。长时间轮询会对服务器产生任何影响。如果网站上一次有1000个用户,这会给Apache带来什么问题? – nvaughan84
嘿 - 当时对于Facebook来说已经够好了(我认为他们现在变成了别的东西,取决于你想要扩展的规模)。 https://www.facebook.com/note.php?note_id=14218138919 – Patrick
另一个可能有用的后 - http://serverfault.com/questions/562701/how-to-scale-up-a-web-server - 支持长轮询 – Patrick
我会去的node.js和服务器到客户端的推送.. – opHASnoNAME
感谢您的评论。我正在研究使用Laravel的Node。理论上我理解如何使用Node将消息(本例中为推文)推送到laravel模板。我希望用户能够在Laravel应用程序中进行管理,因此他们将在这里选择他们想要遵循的Twitter提要。我该如何着手让节点知道哪些用户对哪些供稿感兴趣,并使用他们选择的推文更新他们的页面(而不是使用来自节点的相同数据全局更新每个人)? – nvaughan84
只是想到:建立一个数据库,与node.js应用程序共享它。嗯听起来像一个有趣的项目为我的休息时间;) – opHASnoNAME