问题标签 [event-stream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
862 浏览

python - 通过 Gunicorn + Flask 加载事件流

我正在尝试使用 Flask 应用程序生成大型 PDF。pdf 生成涉及生成十个长 pdf,然后将它们合并在一起。该应用程序使用带有以下标志的 Gunicorn 运行:--worker-class gevent --workers 2。

这是我的服务器端代码的样子:

客户端代码如下所示:

当我在没有GUnicorn 的情况下运行时,我会从控制台日志中获得稳定的实时更新。他们看起来像:

当我用Gunicorn运行这段代码时,我没有得到定期更新。工作人员一直运行直到 Gunicorn 的超时将其杀死,然后我得到所有应该发生的消息的转储,然后是最终错误

Gunicorn 日志如下所示:

如何防止 Gunicorn 终止进程?我认为设置超大超时不是一个好主意。也许 gunicorn 的工人阶级中有一些东西可以用来确保正确处理流程?

0 投票
2 回答
2452 浏览

node.js - express.js 不流式传输分块的“文本/事件流”响应

我正在尝试text/event-stream从 express.js 端点发送 SSE 响应。我的路由处理程序如下所示:

后来我再打电话:

我的浏览器发出并持有请求: 在此处输入图像描述

没有任何响应被推送到浏览器。我的任何事件都没有被触发。如果我杀死 express.js 服务器。响应突然耗尽,每个事件都立即到达浏览器。 在此处输入图像描述

如果我更新我的代码以在行res.end()之后添加res.write(message)它会正确刷新流,但是它会回退到事件轮询并且不会流式传输响应。 在此处输入图像描述

我已经尝试在响应的头部添加填充,就像 res.write(':' + Array(2049).join('\t') + '\n'); 我从其他 SO 帖子中看到的那样,它可以触发浏览器耗尽响应。

我怀疑这是 express.js 的问题,因为我之前一直将此代码与节点本机http服务器一起使用,并且它工作正常。所以我想知道是否有某种方法可以绕过 express 对响应对象的包装。

0 投票
1 回答
1008 浏览

class - 如何主动删除一个 Dart 对象?

我正在构建一个包含各种类对象的 Dart 应用程序。我正在处理的特定类对象包含 DOM 元素上的各种流事件侦听器。当我从 DOM 中删除这些对象并取消跟踪类对象时,这些侦听器仍然存在。

我知道 Dart 最终会运行垃圾收集,但我什至不能 100% 确定它会出现并删除这些类对象,因为有一个 Watcher 和 Stream 监听器在继续。

我的问题是,有没有办法立即主动删除一个类对象?我尝试将类对象设置为 null 但由于某种原因这似乎不起作用。当我随后使用 print 语句检查对象是否存在时,它仍将其列为该类对象的实例。

此外,对于我想要完成的事情,取消流似乎还不够。我需要销毁类对象。

0 投票
0 回答
82 浏览

javascript - 事件流映射在 pg 回调之外工作,但不在内部

我在 pg 回调中遇到事件流问题。我可以用这段小代码来减少它:

如果我运行该代码,则 k1 的分配会按预期显示数组。但是 k2 的赋值什么也没做,是同一段代码。

我已经用 sudo npm update 更新了所有内容,这是我的 package.json

任何想法 ?

0 投票
1 回答
225 浏览

gulp - 按要求合并生成的 sass 事件流的 gulp 任务不起作用

我有三个引导 sass 和另外两个 sass 文件,我正在编译并合并到一个 css 中。在引导程序上,我正在运行“uncss”以摆脱未使用的 css,但是对于其他人,我没有运行“uncss”,因为我不想要。为了合并这些,我使用“eventstream”。不幸的是,生成的组合 css 文件的顺序不符合我的要求。无论如何,引导 css 文件总是在最后打印,这会导致问题。以下是我的吞咽任务

在最终生成的 my-final-site.css 中,css 按以下顺序打印

我想将引导程序保持在顶部,以便我自定义的引导程序代码可以正常工作。

请帮忙。

0 投票
0 回答
363 浏览

javascript - javascript:通道和可观察对象有什么区别

通道 ( https://github.com/ubolonton/js-csp ) 和 observables ( https://rpominov.github.io/kefir/ )有什么区别?是否存在使用一个比使用另一个更有意义的特定用例?

0 投票
2 回答
2400 浏览

php - 服务器发送事件 - 文本/事件流偶尔被 chrome 和 firefox 误解为 text/html

我已经构建了一个应用程序,它在某些时候使用服务器发送事件,从一个长时间运行的 php 脚本发送,以更新前端的进度条。在我遇到了刷新 php 脚本输出的典型问题并尝试了我在 SO 上读到的所有可能的解决方案之后,我得出结论,使其工作的唯一方法是通过回显一个长字符串来强制输出的空间。将消息发送到浏览器的函数如下:

脚本的标题如下:

在我使用的 PC 上,一切似乎都运行良好,但当我在姐姐的笔记本电脑上测试应用程序时,我注意到 Firefox 和 Chrome 出现了这种奇怪的行为。在收到前 2 条消息后,他们断开连接。Firefox 尝试重新连接,Chrome 抛出一个错误,上面写着:

EventSource 响应的 MIME 类型(“text/html”)不是“text/event-stream”

所有 PC 的浏览器版本完全相同(分别为 39.0 和 43.0.2357.134m)。我姐姐的笔记本电脑运行 Windows 7 Home Premium SP1。

如何解释这种不同的行为?它是否取决于浏览器的设置,还是可能归因于某些系统范围的设置?我姐姐笔记本电脑上的 IE 10 没有出现问题。

0 投票
1 回答
556 浏览

java - 在 RxJava 中为需要 onComplete/onError 的事件建模事件接收器

我正在使用 RxJava 和 RxNetty 为 Apache Mesos 的新 HTTP 调度程序 API 编写客户端。

我已经成功地创建了与 RxNetty 的连接,并Observable<Event>从生成的分块流中创建了一个。

现在我正在尝试对一个接收器进行建模,该接收器可用于将调用发送回 Mesos,以声明/拒绝资源提供、确认任务状态更新等。

将要发送到 Mesos 的消息是 a Call,我需要能够为进入 Sink的每个消息提供一个onCompletedor 。这是由于 Mesos 对发送给它的数据执行同步验证。onErrorCallCall

我基本上是在尝试允许以下内容:

现在我想出了一个自定义对象[1],它扩展了 Subject 并指定了Calland Action0foronCompletedAction1<Throwable>for onError。不过,如果可能的话,我更愿意使用 RxJava 中的现有结构。我想出的示例用法[2]。

任何指导将不胜感激。

[1] https://github.com/BenWhitehead/mesos-rxjava/blob/sink-operation/mesos-rxjava-core/src/main/java/org/apache/mesos/rx/java/SinkOperation.java#L17

[2] https://github.com/BenWhitehead/mesos-rxjava/blob/sink-operation/mesos-rxjava-example/mesos-rxjava-example-framework/src/main/java/org/apache/mesos/rx /java/example/framework/sleepy/Main.java#L117-L124

0 投票
1 回答
616 浏览

node.js - Gulp:如何从一组流的承诺中创建一个流?

我有一个由异步函数启动的任务列表。我最终得到了一系列流的承诺。我需要将这些流合并为一个流并将其返回给 Gulp。以下是我想出的。这有点笨拙。有一个更好的方法吗?

0 投票
2 回答
149 浏览

javascript - 从文件流式传输,转换和到 postgres 错误

我需要用 1.5 G 左右的 tsv 文件填充 PG。我计划使用流式传输和 pg-copy-stream,它适用于直接复制。然后我需要做一些转换并添加一个直通管道,但它失败了。我想这可能是一个缓冲区问题,一定有人这样做了。

原始tsvfile.txt的格式为

代码是

我得到的错误是 error: extra data after last expected column,但如果我删除前两个管道,它就可以正常工作。