在 Angular11 中发布 JSON 请求和读取 EventStreams

问题描述

尝试按照下面的文章阅读事件流。我没有像文章中那样使用 formData,而是使用 Json 发帖。它以 200 响应顺利运行。甚至告诉通过线路发送了一些 kb 的数据,但事件流选项卡什么也没显示。同样的 curl 在我的终端上工作。

https://medium.com/swlh/how-do-server-sent-events-sse-or-eventsource-work-in-angular-e9e27b6a3295

Network call of the stream

EventStream tab in the network call

解决方法

如文章所示

    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);
        });
      };
    });

得到了要显示的数据。但是在网络选项卡中我仍然看不到事件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...