问题标签 [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 投票
0 回答
269 浏览

python - Python服务端发送事件不一致消息客户端接收到

我目前遇到关于在 python3 中使用文本/事件流延迟响应的问题。

我遇到的问题是 message inconsistencies。从服务器发送的消息并不总是被客户端接收。

我正在使用 POSTMAN 通过发送连续消息将测试数据发送到服务器。有时客户端会收到我发送的消息,然后在暂停几秒钟后,客户端将不再收到我发送的任何消息,然后过一会儿又开始接收。

这是我目前正在使用的示例代码。

sse.py

服务.py

我想知道是否有更好的解决方案。我将不胜感激任何帮助或想法。

0 投票
1 回答
565 浏览

firebase - Firebase 实时数据库 REST 事件流:不要下载整个树

我正在使用 Firebase 实时数据库 REST API 在上传数据时从服务器流式传输事件(请参阅https://firebase.google.com/docs/reference/rest/database#section-streaming-cancel

但是,当我启动事件流时,它总是会下载整个树。我不需要那个,我只想接收实时更改。例子:

有没有办法告诉数据库跳过第一个事件?我不需要这些数据(以一种不同的、更有效的方式获取当前状态)。我只想要对数据进行实时更改。

0 投票
1 回答
494 浏览

node.js - 从 S3 下载文件并按行数拆分

我正在尝试从 S3 存储桶下载文件并将其拆分为 500000 行的块,每行保存为单独的文件。

我在下面编写的代码不断因此错误而崩溃:

我在 docker 容器上运行此代码,使用 alpine-node:9 .n 我正在使用 Bull Queue 在沙盒进程中处理这些作业(https://github.com/OptimalBits/bull#documentation

我已经尝试增加 docker 引擎的内存并增加了节点进程的内存限制,但我无法解决这个问题。

你对如何解决这个问题有什么建议吗?

谢谢,齐射

0 投票
0 回答
112 浏览

node.js - Nodejs:读取文件后无法转换RAW数据

我有一个包含以下数据的文件:

8745kjhsdf CRM Natl Abc Day MC CRM Natl Jrky Day245874k001S00002000001759300.000.000.0000.0 EA 000001 001 O 50 0 2 20200323 910079105MC CRM Sandwich MC CRM Free Sandwich9901M05470001S00002000001728300.000.000.0000.0 EA 000001 001 13 20190510

读取文件后,我想将其转换为对象的 Json/Array。但无论如何我无法找到任何解决方案。

代码:

0 投票
1 回答
301 浏览

javascript - NodeJS:如何从两个文件中读取并使用管道写入单个输出文件?

语境

我正在使用事件流模块来帮助我读取和写入这些我希望返回结果文件的本地文件。长话短说,multipart/form-data我期望的 2 个输入文件(通过 express API as 发送)的大小可以超过 200MB,其中包含一个条目列表(每行 1 个)。我想做的是以以下格式组合这些条目,<entry1>:<entry2>其中entry1第一个文件中的条目和entry2来自第二个文件。我之前以一种能够在内存中存储和返回输入/输出的方式执行此操作,但是由于我的应用程序服务器上的内存空间非常有限,我的堆内存不足。我读到我可以使用事件流和管道逐行读取每个文件并输出到文件,而不是使用读取流输出到内存中的大字符串。问题是我似乎无法以正确的方式/时间解决问题,以便准备好将生成的输出文件发送回调用者。

到目前为止我所拥有的

到目前为止,我所做的工作是我得到了我期望的正确文件输出,但是,这似乎是一个异步问题,因为我在文件实际完成写入/保存之前解决了承诺。请在下面查看我的代码...

注意:这个函数是从另一个服务函数调用的,如下所示:

作为一个新手 Javascript 开发人员,甚至是 NodeJS 的新手,我已经坚持尝试自己解决这个问题超过 2 周了。如果有人能够提供帮助,我将非常感谢这里的一些智慧!

谢谢

0 投票
0 回答
88 浏览

php - 太多时PHP关闭连接

最近,我决定在一些需要服务器发送事件(事件流)的页面上加载测试我的网站,这意味着 PHP 需要处理许多打开的连接(循环中的脚本)。当接近约 140 个打开的连接时,连接在 1 或 2 秒后开始关闭。在进行负载测试时,我监控了我的服务器,CPU 负载非常低,RAM 使用率低,网络不是瓶颈,所以我知道这可能不是硬件缺陷。Apache 日志显示没有 PHP 警告(也没有致命错误)。php ini 文件中是否有可能负责关闭连接的参数?

如果您需要一些日志或其他我会尽力提供它们。

谢谢。

0 投票
1 回答
165 浏览

php - 通过 tls 使用 nginx 的事件流

我制作了一个 php 事件流脚本,当 nginx 没有启用 tls (ssl) 但在启用 tls 后,对事件流的请求保持挂起时,它工作得非常好。我尝试禁用 ssl 缓存、代理缓存([这里][1] 是我的网站配置文件),但我对 nginx 还是很陌生。我还在我的 php 脚本中设置了标题“X-Accel-Buffering: no”,但没有结果。另外,这是我的 ngninx conf文件。我的配置中缺少一行吗?

谢谢。[1]:https ://pastebin.com/a2NutTUA

0 投票
1 回答
1106 浏览

java - 两个 Quarkus 服务之间的非阻塞数据流(Vert.x with Mutiny in Java)

更新!

在解决了一些与主要问题无关的问题后,我修复了示例代码中的小错误,主要问题仍然是关于服务之间的非阻塞流。

背景资料

我在 Quarkus 下移植了一个 Spring WebFlux 服务。该服务对多个大型数据集运行长时间搜索,并在可用时以 Flux(文本/事件流)的形式返回部分结果。

问题

现在我正在尝试在 Quarkus 下将 Mutiny Multi 与 Vert.x 一起使用,但无法弄清楚消费者服务如何在不阻塞的情况下接收此流。

在所有示例中,消费者要么是 JS 前端页面,要么生产者的内容类型是 application/json,这似乎在 Multi 完成之前一直在发送,然后再将其发送到一个 JSON 对象中(这在我的应用程序中没有意义)。

问题

  1. 如何使用 Mutiny 风格的 Vert.x WebClient 接收文本/事件流?
  2. 如果问题是 WebClient 无法接收连续流:在两个 Quarkus 服务之间流式传输数据的标准方式是什么?

这是一个简化的例子

测试实体

生产者 1. 简单的无限流 -> 挂起

Producer 2. 使用 Vertx Paths 无限流 -> 挂起

Producer 3. 简单的有限流 -> 阻塞直到完成

消费者

在生产者和消费者方面尝试了多种不同的解决方案,但在每种情况下,流都会阻塞,直到它完成或无限期挂起,而不为无限流传输数据。我用 httpie 得到了相同的结果。这是最新的迭代:

0 投票
1 回答
68 浏览

elasticsearch - AWS Elasticsearch 作为事件存储

我计划将 AWS Elasticsearch 用作事件存储数据库。大多数情况下,事件类似于实例 ID 和登录/注销事件等。在这种情况下,实例 ID 几乎保持不变,但事件会随着此类事件的时间戳不断更新。

想知道是否有人在这种情况下有使用 Elastic 的经验,以及关于如何最好地将此类数据注入 ES 索引的任何指示?

0 投票
0 回答
122 浏览

javascript - 堆内存泄漏 pptxgenjs

目前我正在使用pptxgenjs并导出它创建一个 ppt 文件。pptexporter 文件包含许多其他函数来获取资产和字符串等,但是当我使用比容器更大的图像和视频等大型资产时,总是存在内存泄漏,mem_limit这会杀死容器。我在生成ppt文件之前和之后做了堆转储,差别很大。但不知何故,在发送响应后堆内存仍然很大。是因为我没有正确传输数据吗?但它似乎pptxgenjs在构建 ppt 的同时照顾资产。

如果不使用大图像资源或视频,则堆稳定在 51mb 左右。但是,如果我使用总大小为 300mb 的资产或许多资产,docker stats 会显示内存一次跃升至 1.6g。

发送响应后转储与生成 ppt 文件流之前的比较: 在此处输入图像描述

pptExporter.js 的一部分:

getCoursePpt.js:

然后重新运行: