У меня возникла проблема при использовании отправленных событий сервера для обновления 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