проблема с отправленными сервером событиями в Angular + springboot - PullRequest
0 голосов
/ 20 апреля 2020

У меня возникла проблема при использовании отправленных событий сервера для обновления sh моих данных из базы данных mysql при каждом изменении, поэтому вот мой код


export class DocumentsService {

  constructor(private http: HttpClient,private token: TokenStorageService) { }

    subscribe(): Subject<any> {
        const token = this.token.getToken();
        var eventSource = new EventSourcePolyfill(`${url}/DemandeDeTravail/subscribe`, {
            headers: {
                'Authorization': 'Bearer ' + token
            }
        });
        // let eventSource = new EventSource (`${url}/DemandeDeTravail/subscribe` );

        let subscription = new Subject();
        eventSource.addEventListener("message", event=> {
            console.info("Got event: " + event.data);
            subscription.next(event);
        });
        return subscription;
    }

}

и класс, вызывающий это:

ngOnInit() {

      this.documentService.subscribe()
          .subscribe({
              next: (event) => {
                  console.log('observer: ' + event);
              }
          });
  }

проблема в том, что когда я изменяю данные, используя некоторые бэкэнд-функции, я отправляю события, и консоль каждый раз показывает мне: («Got event:» + event.data), но показывает («наблюдатель:» + событие) только в первый раз. я делаю что-то не так?

ps: я использовал EventSourcePolyfill вместо EventSource, потому что мне нужен заголовок авторизации, который невозможно сделать с classi c EventSource

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...