问题标签 [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 回答
656 浏览

spring-boot - 未找到媒体类型 = 文本/事件流的 SseEmitter MessageBodyWriter

我正在尝试让服务器发送的事件与 JavaScript Web 客户端和 Spring Boot 1.5.7 应用程序一起使用。当客户端最初连接时从 REST 端点返回 SseEmitter 时,服务器日志中出现以下错误:

REST 方法被很好地调用,我创建并保存发射器以供以后使用。当从 REST 方法返回发射器时,会抛出上述异常。

我只有在 Web 客户端(Chrome 和 Firefox)中使用 EventSource 时才得到这个,而不是在使用 curl 时。我什至可以在浏览器中输入 URL 并获得响应,而不会在服务器上出现错误。

我几乎在关注我能找到的每一个例子。

JavaScript:

服务器:

有任何想法吗?

谢谢你。

0 投票
1 回答
4603 浏览

javascript - 服务器发送事件 EventStream 不会触发“onmessage”,但 Chrome Debug 在“EventStream”选项卡中显示数据

我将 SSE 与内置的 JavaScript 逻辑 EventStream 一起使用。在onopen返回成功结果时,onmessage回调不起作用。奇怪的是,在 Chrome 中的EventStream选项卡中,数据结果按我的预期列出。

这是我的 EventSource 的 JS 片段

在此处输入图像描述

如您所见,有数据正在发出,但从onmessage未被触发。有人可以向我解释这种行为吗?

编辑onopenonerror做这两个工作。

0 投票
3 回答
1312 浏览

http - 如何仅通过一个 HTTP 请求从 Event Store 流中获取最后一个事件?

我能找到的所有文档似乎都表明我需要两个 http 请求来执行此操作:一个到流,给我一个到最后一个事件的链接,然后一个跟随那个链接。

这似乎很奇怪,难道没有办法只用一个请求来做到这一点吗?

0 投票
2 回答
981 浏览

python - Docker 映像中的 nginx 缓冲烧瓶事件流

我有一个带有 python/flask 的 REST API 后端,并希望在事件流中流式传输响应。一切都在带有 nginx/uwsgi ( https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/ )的 docker 容器中运行。

API 工作正常,直到涉及事件流。似乎某些东西(可能是 nginx)正在缓冲“收益”,因为在服务器完成计算并将所有内容一起发送之前,任何类型的客户端都没有收到任何内容。

我尝试使用附加配置(nginx_streaming.conf)文件来调整 nginx 设置(根据 docker 映像说明):

码头文件:

但是我不太熟悉 nginx 设置,并且确定我在这里做什么^^这至少不起作用..有什么建议吗?

我的服务器端实现:

0 投票
2 回答
21342 浏览

node.js - 如何通过 socket.io 将数据流式传输到客户端

我有 socket.io 从服务器向客户端发送一个基本对象。这一点工作正常。

现在想使用事件流(特别是区块链查询的结果)从服务器向客户端发送一个流。我在浏览器控制台中得到了意想不到的结果..

我在客户端控制台中得到的似乎是某种 TCP 套接字功能,

ƒ (){if(!n){n=!0;var r=a(arguments);u("sending ack %j",r),e.packet({type:i.ACK,id:t,data:r})}}

谁能帮助我了解发生了什么以及我做错了什么?

== 编辑更新 ==

正如评论中所建议的,我已经尝试使用 socket.io-stream来增加event-stream

这次我在浏览器控制台中返回了一个套接字对象,这似乎不是我希望的流数据。

在此处输入图像描述

0 投票
1 回答
688 浏览

node.js - 超出最大堆栈大小 - 事件流

有这段代码:

问题是当查询返回大量文档时,该函数将失败

这个函数所做的是获取一个过滤器,基于过滤器运行一个 mongodb 查询,并将结果文档写入一个文件,然后进行 ftp-ed。

该功能在next(null, doc);

关于如何改进代码而不必增加调用堆栈大小的任何建议?

0 投票
2 回答
465 浏览

domain-driven-design - 事件溯源中是否应该查询最新的事件版本?

我正在为教育目的开发一个简单的基于 DDD + 事件源的应用程序。

为了在存储到事件存储之前设置事件版本,我应该查询事件存储,但我的直觉告诉这是错误的,因为它会导致并发问题。

我错过了什么吗?

0 投票
0 回答
493 浏览

angularjs - 如何模拟服务器发送事件 SSE aka EventSource?

在我的 angularjs 应用程序中,我具有以下方式使用 SSE 的功能。代码在第三方库中,

现在我想在我的protractor代码中模拟这个,我可以用它httpBackend来模拟请求但是返回适当eventstream响应和触发事件的正确方法是什么?

0 投票
1 回答
1847 浏览

php - PHP 服务器发送事件连接不会关闭?

我已经在我的 Web 应用程序上实现了一个带有事件源的服务器发送事件。基本上在javascript中我的代码看起来像:

在 PHP 方面,我有这样的东西:

从在以下位置找到的答案:PHP 事件源不断执行,“文本/事件流”标头应该使连接自动关闭,但在我的情况下它不会..

我确实在 window.onbeforeunload 事件中添加了一个 eventsource.close,但它没有关闭该事件。

如果我查看浏览器的网络部分,我可以看到标题是(在添加最大循环 30 之后): Content-Type: text/event-stream;charset=UTF-8

响应标头:

访问控制允许来源:*

缓存控制:无缓存

连接:保持活动

内容类型:文本/事件流;字符集=UTF-8

服务器:Apache/2.4.18 (Ubuntu)

日期:2018 年 4 月 26 日星期四 20:29:46 GMT

到期:1981 年 11 月 19 日星期四 08:52:00 GMT

请求标头:

连接:保持活动

接受:文本/事件流

缓存控制:无缓存

注意:我确认脚本仍在使用日志运行,并通过始终递增的 bash (ps -ax | grep -c apache2) 检查 apache2 进程。

0 投票
1 回答
531 浏览

node.js - 你如何使用 event-stream 来暂停和恢复 Gulp 流?

我正在尝试将 npm 包克隆到客户端位置,因此我创建了多个流来完成此操作并将它们合并以从gulp.task(). 但是,据我了解,我需要暂停流,以便任务接收正确的退出。

以下代码运行没有错误,但如果我评论该return行。其中一个包仍然被复制,当我希望没有任何流到达它们的gulp.dest(). 为什么不是所有的流都暂停了?