Проблема EventSource с Angular 7 - PullRequest
       8

Проблема EventSource с Angular 7

0 голосов
/ 16 ноября 2018

Я перешел с 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

Пожалуйста, помогите мне в этом вопросе.

...