Я перешел с Angular 5 на Angular 7 с тех пор, как EventSource не работает для меня в моем приложении. После поиска в Google я нашел что-то EventSourcePolyfill, поэтому я импортировал в свой компонент.
См. Ниже: эту ошибку я часто получаю, я хочу сказать каждую секунду.
core.js:12584 ERROR Error: No activity within 1000 milliseconds. Reconnecting.
at eventsource.js:411
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:14134)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:496)
at ZoneTask.invoke (zone.js:485)
at timer (zone.js:2054)
У меня вопрос, почему EventSource не работает в Angular 7? Есть ли другой пакет, похожий на EventSource.
См. Ниже мой код:
import { EventSourcePolyfill } from 'ng-event-source';
ngOnInit() {
this.tasks();
this.connect();
}
tasks() {
this.handler.activateLoader();
this.tasksService.get(this.page, this.pageSize).subscribe(results => {
this.handler.hideLoader();
if (this.handler.handle(results)) {
return;
}
this.tasksRes = results['data'];
for (let i = 0; i < this.tasksRes.length; i++) {
if (this.tasksRes[i].status == 'In_progress' && this.tasksRes[i].eventType == 'Sync' &&
this.tasksRes[i].entityId == this.id) {
this.progressFlag = true;
break;
} else {
this.progressFlag = false;
}
}
this.length = results['totalElements'];
}, error => {
this.handler.hideLoader();
this.handler.error(error);
});
}
connect() {
let source = new EventSourcePolyfill('/api/v1/events/register', { heartbeatTimeout: 1000, connectionTimeout: 1000 });
source.addEventListener('message', message => {
this.tasks();
});
}
Приведенный выше код дает мне ошибку следующим образом:
![enter image description here](https://i.stack.imgur.com/jIJJE.png)
Пожалуйста, помогите мне в этом вопросе.