问题标签 [eventsource]

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 回答
650 浏览

php - PHP 和事件 - 在脚本终止之前不会向客户端刷新

我正在尝试创建一个将事件发送到网页的简单页面,但我无法让 PHP 在页面终止之前发送输出。

我正在使用 PHP-FPM 和 php5.6.27。

这是我的简单 HTML 页面:

这是我的 PHP 页面:

我尝试了各种可能的解决方案,但我无法弄清楚。我还将 PHP-FPM 更改为 mod_php(我正在使用 apache)以防万一它是 PHP_FPM,但我没有成功。

我愿意接受建议

0 投票
1 回答
41 浏览

javascript - 用于 html 和服务器端事件页面的单个 php 文件

我使用此代码为 html 页面和动态 ajax 响应(使用 jQuery)拥有相同的文件:

是否可以使用服务器端事件和事件源来做同样的事情?

0 投票
1 回答
717 浏览

php - 未刷新 php 脚本的内容

我有这段代码(它使用服务器端事件,但问题是刷新不起作用):

它在 wamp 服务器上本地工作,但不在我的共享主机上,我在 php 信息中有这个:

而且我无法更改它,我也尝试将其添加ob_start()到我的脚本中ini_set('output_buffering', 0)并删除ob_flush,但这没有帮助。

我还尝试在 .user.ini 中为目录将 output_buffering 设置为 0,并且 php 信息显示 Local Value 为 0 但服务器端事件仍然不起作用,我一次获得所有事件,开发人员工具(pending)说空类型,直到它在 10 秒后完成。

开发者工具

有人知道如何解决这个问题吗?

编辑

我再次尝试运行代码(几年后在 Fedora/Linux 上),但它给出了相同的结果。Gzip 未打开,但消息显示在最后。

我试过了:

  • 添加标题'X-Accel-Buffering' => 'no'
  • 还添加echo "event:". $event ."\n";

没有成功。

我正在查看使用 while 循环时未加载服务器端 PHP 事件页面,但解决方案不起作用,代码给出与 OP 相同的错误(他没有太多代表,所以他可能在 SO 上不活跃),我的至少显示了事件,但我打破了循环,他的代码有无限循环。

这是服务器(Fedora)发送的标头:

同样的情况也发生在来自http://demo.howopensource.com/sse/的简单代码上

我的 php.ini 有这个:

所以我也试过,设置.user.init文件:

但它也没有奏效。脚本正在等待立即返回所有内容。本文中的代码Streaming PHP - 在 PHP、Apache、Nginx 和 Varnish 中禁用输出缓冲如果我$string_length = 4096;甚至使用那个 phpinfo 表示该目录在本地禁用了输出缓冲。

编辑2

它似乎刷新在我的共享主机上工作,https://jcubic.pl/01.php?size=100但我无法在 Fedora 上本地测试它,因为刷新不起作用。

这是我本地 phpinfo 输出的链接:https ://jcubic.pl/phpinfo().html

0 投票
1 回答
1484 浏览

javascript - 如何使用 Redux Observable 获取 EventSource

问题很简单,如何将 redux-observable 与 EventSource 一起使用?

使用 RxJs 就像:

0 投票
1 回答
176 浏览

javascript - asp.net 中的事件源具有一转延迟的响应

经过数小时的谷歌搜索,我发现只有一个关于使用 asp.net(不是 MVC)的事件源的示例。首先我必须说我想学习它,我的最终目标是创建一个友好的扑克网站。SignalR 非常适合我的目的,但我不想使用它,因为我听说:

SignalR 性能不佳

不是吗?(​​我希望不是)。我的问题是当服务器向客户端发送响应时,它发送的不是当前文本:

这是 SSEHandler:

执行此 cods 客户端控制台后,只有“第一”。如果我将其添加到 SSEHandler 的末尾:

在客户端控制台中,我们有“第一”、“第二”。感谢您阅读我的长文。

0 投票
1 回答
2130 浏览

node.js - 终止 EventSource 事件侦听器?

我正在尝试解决与 Nest API 和不支持流式传输的服务 (ST) 之间的流式传输有关的问题。

为了解决这个问题,我在 Sails 上构建了一个服务,该服务从 ST 接收包含 Nest 令牌的发布请求,然后触发 EventSource 事件侦听器,将数据发送回 ST。

它在很大程度上基于此处的 Nest rest-streaming 示例: https ://github.com/nestlabs/rest-streaming ,我的代码如下:

我预见的问题是,一旦节点服务器收到请求,它就会启动事件侦听器,但是我无法终生弄清楚如何杀死事件侦听器。

如果我无法找到阻止这种情况的方法,那么每个 EventListener 都会无限期地运行,这显然是不合适的。

有没有人对如何克服这个问题有任何建议?

0 投票
1 回答
963 浏览

javascript - 使用 SSE 获取 mysql 选择的响应

我正在尝试使用 EventSource 来创建一个 1 对 1 的实时连接聊天。我已经设置了我的事件源,并且从开发人员工具告诉我的内容来看,它是打开的并且可以工作,但是没有从 PHP 文件中显示响应数据。

PHP:

调用事件源的js包含在该函数中,该函数通过单击按钮启动。

JS:

任何帮助或指导将不胜感激。我对 SSE 比较陌生,但据我所知,这应该可行。

0 投票
0 回答
52 浏览

python - 通过 EventSource 的并行请求被迫按顺序提供服务

我有一个烧瓶服务器,在客户端使用 yield 流和 EventSource 从服务器实时获取数据。当两个 EventSource 请求并行发送到服务器时,它们将按顺序执行。我怎样才能让它们并行工作?

编辑:我已经尝试过使用 nginx 和烧瓶服务器的 uwsgi。问题在于事件源而不是烧瓶。我的请求得到了很好的服务。通过事件源的部分是按顺序提供的。

0 投票
1 回答
379 浏览

tomcat7 - 泽西 SSE 不适用于 Tomcat 7

沮丧,我发布了这个问题。我确信我已经浏览了足够多的信息,知道到目前为止还没有讨论正确的答案。但如果情况相反,请接受我的道歉并与我分享 apt 论坛链接。

我正在使用 Jersey SSE API 测试 SSE 广播的概念。

我没有使用 Maven 或任何东西。因为我正在从事的宠物项目是在我熟悉 Maven 之前开始的,因此我手动将 Jar 文件添加到 Web-Inf lib 文件夹

我有以下相关的罐子-

我的 web.xml:

我的测试 SSE 注册文件。我用它来注册 SSE:

//注册后,我通过另一个服务触发广播-

现在我将分享 Chrome 或 firefox 中发生的事情:

当我调用服务 getSSE 时,浏览器正在注册事件流,甚至网络详细信息中有一个选项卡 eventStream,其中包含空白表 ID、类型、数据。

当我调用服务 /test2/10 时,它显示 200 OK 并且响应显示在浏览器中。

在 getSSE 选项卡中,第一个 getSSE 显示为已完成,另一个 getSSE 显示为待处理。但是事件源数据仍然为零。

在这里调用 test2 两次之后是结果:

getSSE 200 eventsource sse.html:-Infinity 149 B 35.41 s
getSSE 200 eventsource Other 149 B 11.0 min
getSSE 200 eventsource Other 144 B Pending

有人可以指出为什么我没有得到数据吗?我在服务器端 Java 中没有收到任何运行时错误。

服务器是 Tomcat 7.0.69 Java 是 JDK 1.7

请帮我完成这项工作..出于好奇,我在哪里出错了,我正在失眠

0 投票
1 回答
187 浏览

javascript - 服务器端事件出错

所以我在页面的javascript中有以下代码。

在服务器端,我有这个..

我从网络上的几个网站上复制了这个,正如我所看到的,从逻辑上讲,这应该可以工作。但是,当我运行它时,我得到一个错误。它正确打开,但我收到错误并关闭。

如果有人能指出我哪里出错了,我将不胜感激。它加载正常并且不断刷新......只是我收到错误并停在那里。如果我取消关闭,它只会继续运行并不断出错。

如果有帮助的话,这是在 Lucee 服务器上运行的。