我已经用Angular开发了一段时间了,RxJS的一些要点仍然会引起一些问题,我倾向于使用各种方法来解决这些问题,比如超时或使用间隔轮询等,但我有一种更优雅的解决方案,我很想知道它,所以基本上这里有一些问题。
假设您有一个Laravel应用程序,它从twitter提要生成JSON,那么检索这些结果的最佳方法是什么。
我在考虑使用angular http获取feed.json,然后使用Observable.interval定期轮询服务器,并使用behaviour几乎实时地显示结果。
这不是基于我目前正在工作的任何东西,所以我不能提供代码,我只是想知道这是正确的方法,我记得曾几何时,轮询后端服务器是一件令人皱眉的事情,特别是如果我们谈论的是一个应用程序,其中100s/1000s的实例都同时轮询提要
或者抛出另一个例子,一个实时的以太区块链报价器来监控当前开采的区块链,汽油价格等。目前在Angular 1中有一个名为EthStats的实现,它签入到它们的源代码中,我在这里的第95行看到,它们每隔300ms [https://github.com/cubedro/eth-netstats/blob/master/src/js/controllers.js#L95]更新一次视图
轮询或超时现在是实时的事实标准吗?我很少看到(没有)教程以一种有用的、可伸缩的方式使用WebSockets或MQTT。
发布于 2018-03-13 04:18:11
如果您的应用程序有很多用户,那么创建与服务器通信的时间间隔可能是危险的。想象一下,每秒钟有一百万用户向你的服务器发送一个请求?如果不能以更好的方式处理,这可能是非常危险的。
要解决这个问题,您可以使用Websocket连接使后端在提要中有新数据时与前端通信,这样,只有在确实有新数据时,它才会请求新数据。
Laravel有一些东西可以帮助你做到这一点:https://laravel.com/docs/5.6/broadcasting
https://stackoverflow.com/questions/49243648
复制相似问题