问题标签 [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.
php - PHP 和事件 - 在脚本终止之前不会向客户端刷新
我正在尝试创建一个将事件发送到网页的简单页面,但我无法让 PHP 在页面终止之前发送输出。
我正在使用 PHP-FPM 和 php5.6.27。
这是我的简单 HTML 页面:
这是我的 PHP 页面:
我尝试了各种可能的解决方案,但我无法弄清楚。我还将 PHP-FPM 更改为 mod_php(我正在使用 apache)以防万一它是 PHP_FPM,但我没有成功。
我愿意接受建议
javascript - 用于 html 和服务器端事件页面的单个 php 文件
我使用此代码为 html 页面和动态 ajax 响应(使用 jQuery)拥有相同的文件:
是否可以使用服务器端事件和事件源来做同样的事情?
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
javascript - 如何使用 Redux Observable 获取 EventSource
问题很简单,如何将 redux-observable 与 EventSource 一起使用?
使用 RxJs 就像:
javascript - asp.net 中的事件源具有一转延迟的响应
经过数小时的谷歌搜索,我发现只有一个关于使用 asp.net(不是 MVC)的事件源的示例。首先我必须说我想学习它,我的最终目标是创建一个友好的扑克网站。SignalR 非常适合我的目的,但我不想使用它,因为我听说:
SignalR 性能不佳
不是吗?(我希望不是)。我的问题是当服务器向客户端发送响应时,它发送的不是当前文本:
这是 SSEHandler:
执行此 cods 客户端控制台后,只有“第一”。如果我将其添加到 SSEHandler 的末尾:
在客户端控制台中,我们有“第一”、“第二”。感谢您阅读我的长文。
node.js - 终止 EventSource 事件侦听器?
我正在尝试解决与 Nest API 和不支持流式传输的服务 (ST) 之间的流式传输有关的问题。
为了解决这个问题,我在 Sails 上构建了一个服务,该服务从 ST 接收包含 Nest 令牌的发布请求,然后触发 EventSource 事件侦听器,将数据发送回 ST。
它在很大程度上基于此处的 Nest rest-streaming 示例: https ://github.com/nestlabs/rest-streaming ,我的代码如下:
我预见的问题是,一旦节点服务器收到请求,它就会启动事件侦听器,但是我无法终生弄清楚如何杀死事件侦听器。
如果我无法找到阻止这种情况的方法,那么每个 EventListener 都会无限期地运行,这显然是不合适的。
有没有人对如何克服这个问题有任何建议?
javascript - 使用 SSE 获取 mysql 选择的响应
我正在尝试使用 EventSource 来创建一个 1 对 1 的实时连接聊天。我已经设置了我的事件源,并且从开发人员工具告诉我的内容来看,它是打开的并且可以工作,但是没有从 PHP 文件中显示响应数据。
PHP:
调用事件源的js包含在该函数中,该函数通过单击按钮启动。
JS:
任何帮助或指导将不胜感激。我对 SSE 比较陌生,但据我所知,这应该可行。
python - 通过 EventSource 的并行请求被迫按顺序提供服务
我有一个烧瓶服务器,在客户端使用 yield 流和 EventSource 从服务器实时获取数据。当两个 EventSource 请求并行发送到服务器时,它们将按顺序执行。我怎样才能让它们并行工作?
编辑:我已经尝试过使用 nginx 和烧瓶服务器的 uwsgi。问题在于事件源而不是烧瓶。我的请求得到了很好的服务。通过事件源的部分是按顺序提供的。
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
请帮我完成这项工作..出于好奇,我在哪里出错了,我正在失眠
javascript - 服务器端事件出错
所以我在页面的javascript中有以下代码。
在服务器端,我有这个..
我从网络上的几个网站上复制了这个,正如我所看到的,从逻辑上讲,这应该可以工作。但是,当我运行它时,我得到一个错误。它正确打开,但我收到错误并关闭。
如果有人能指出我哪里出错了,我将不胜感激。它加载正常并且不断刷新......只是我收到错误并停在那里。如果我取消关闭,它只会继续运行并不断出错。
如果有帮助的话,这是在 Lucee 服务器上运行的。