我正在尝试创建一个聊天应用程序,我使用Quickblox Api来发送和接收消息。但我没有办法正确接收传入消息。
现在,我使用setInterval
在5秒后检索邮件,如下所示。
this.setIntervalVariable = setInterval(() => {
this.quickService.retreiveAllMessageByDialogId(this.currentDialogId).subscribe(
res => {
this.messageHistory = res.items;
}
)
}, 5000)
在服务中:
retreiveAllMessageByDialogId(Dialogid) {
var headers = new Headers();
headers.append('QB-Token', localStorage.getItem('QBToken'));
return this._http.get("https://api.quickblox.com/chat/Message.json?chat_dialog_id=" + Dialogid, {headers: headers}).map(
(res: Response) => res.json());
}
但它的作用是它在5秒后调用Api,这会不必要地增加网络请求。我想知道有没有其他方法可以做到这一点。任何帮助表示赞赏。
答案 0 :(得分:0)
我也使用这样的东西来频繁地获取我的通知。请试试这个
ngOnInit() {
this.checkforNewUpdates();
}
checkforNewUpdates() {
Observable.interval(1000 * 60).takeUntil(this.onDestroy$).subscribe(x => {
this.fetchData(url).subscribe(
(data) => {
console.log(data);
})
});
}
fetchData(url) {
return this.http.get(url, {
headers: // set header values
}).map(
(res) => res.json()
)
}
答案 1 :(得分:0)