【发布时间】:2018-03-21 22:24:25
【问题描述】:
我制作了一个 Angular 应用程序,它每两秒发出一次 http GET 请求以更新仪表板。但我经常收到 HTTP 错误 429(请求过多)。
我在 Firefox 开发者工具中看到请求是“保持活动状态”,时间为 5 秒,所以我认为每个调用都是打开与服务器的连接而不是重用它
如何告诉 Angular 重用连接?或者如何避免429?只有 3 或 4 个并发客户端。
相关代码如下:
ngOnInit() {
this.interval = Observable.interval(environment.dashboard_refresh_rate).subscribe(x => {
this.getLockersFromService();
});
this.getLockersFromService();
}
ngOnDestroy() {
this.interval.unsubscribe();
}
getLockersFromService() {
this.http.get('/dashboard').subscribe(
data => {
this.showDashboard(data);
},
(err: HttpErrorResponse) => {
this.showErrorResponse(err);
}
);
}
【问题讨论】:
-
听起来像是 websockets 的案例developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
-
是的@jbrown,但我的后端在 Laravel (php) 中。我认为在 PHP 中实现 websocket 很复杂。我不认为我可以拥有一个长寿的 php 进程。
标签: angular rest http webservice-client angular2-http