问题描述
尝试按照下面的文章阅读事件流。我没有像文章中那样使用 formData
,而是使用 Json 发帖。它以 200 响应顺利运行。甚至告诉通过线路发送了一些 kb 的数据,但事件流选项卡什么也没显示。同样的 curl 在我的终端上工作。
https://medium.com/swlh/how-do-server-sent-events-sse-or-eventsource-work-in-angular-e9e27b6a3295
解决方法
如文章所示
return Observable.create((observer) => {
const eventSource = this.sseService.getEventSourceWithPost(url,data);
// Launch query
eventSource.stream();
// on answer from message listener
eventSource.onmessage = (event) => {
this.zone.run(() => {
observer.next(event.progress);
});
};
eventSource.onerror = (error) => {
this.zone.run(() => {
observer.error(error);
});
};
});
将此部分更改为
return Observable.create((observer) => {
const eventSource = this.sseService.getEventSourceWithPost(url,data);
// Launch query
eventSource.stream();
// on answer from message listener
eventSource.addEventListener('EVENT_NAME_FROM_STREAM',(event) => {
this.zone.run(() => {
observer.next(event.data);
});
};
});
得到了要显示的数据。但是在网络选项卡中我仍然看不到事件。