问题标签 [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.
server-sent-events - Sinatra 和 Thin 上的服务器发送事件 (SSE) 反复断开连接并重新连接
我制作了一个小型 Sinatra 应用程序来或多或少地实时跟踪我们公司的一些数据。
设置很像dashing.io/:
- Rufus Scheduler 作业用于在一定的时间间隔内查询数据库。
- 查询结果返回到 SSE 连接流。
- 客户端订阅流(在 erb 视图中的 javascript 中定义)并以不同的方式显示数据,例如使用 highcharts。
这一切都很好,但是,我注意到如果我让作业运行的频率低于每分钟,客户端将一直断开连接并重新连接。让我解释:
订阅 javascript 代码如下所示:
如果我让作业每 30 秒运行一次,那么一切都会完美运行。在 Chrome(或 Firefox)的控制台中查看以下内容:
但是,如果我将作业间隔调整为 3 分钟,控制台会显示客户端不断断开连接:
客户端似乎仍然能够检索输入数据,因此最终结果不会受到此影响。我的问题是,这是不断断开/重新连接的正常行为吗?无论数据流式传输的频率如何,客户端不应该保持连接打开吗?
internet-explorer - 在 IE 中使用 Eventsource 时如何检查来源?
我正在使用这个 polyfill 使服务器端事件(EventSource)与 IE 一起工作 - https://github.com/Yaffle/EventSource
它工作得很好,除了我无法检查来源,就像本教程推荐的那样(出于安全目的)http://www.html5rocks.com/en/tutorials/eventsource/basics/
这是来自 html5rocks 的代码
有没有办法设置和检查原点,让它与 IE 一起工作?
python - 如何在 python 烧瓶应用程序中广播服务器发送的事件?
我正在根据条件获取某些记录并将它们存储在 msgarr 中。
我在这里使用服务器发送事件(到目前为止,我不希望有任何使用 socketio 或任何其他概念的建议)。当我打开浏览器时,来自 msgarr 的数据会被完美推送。
但是当我在另一台计算机或手机上打开另一个浏览器时,来自 msgarr 的数据会被推送到这个浏览器或另一个浏览器中。它的随机。
如何确保所有连接的浏览器都从 msgarr 获取数据?
下面是我的 python 烧瓶服务器代码:
Python 烧瓶服务器:
下面是我的客户端代码:
javascript - 为什么这个 EventSource 反复触发消息和错误?
客户端如下所示:
处理 POST 请求的服务器端 Node.js 如下所示:
response.end()
如果我从客户端发送 POST 请求数据,它会按预期返回给我,但es
每隔几秒就会触发一个错误,此外每隔几秒就会触发一个message
事件。但是,当message
事件被触发时,它会发出警报""
,我不确定为什么?谁能帮我弄清楚这种行为?
编辑:刚刚检查了es.readyState
和message
事件error
。readyState
在0
上error
,所以看起来可能是断开连接的结果。为什么会发生这种反复断开连接?为什么重复连接和断开会导致重复message
事件?
typescript - 从(服务器发送的)EventSource 创建一个 RxJS Observable
我想从 EventSource(服务器发送的事件)创建一个 RxJs Observable。
我尝试了以下方法:
但我得到以下异常:
为了完整起见,这里是我的 index.html 的内容:
有人可以帮忙吗?
编辑1:按照Yurzui的建议,我修改了我的代码如下:
它确实在控制台中记录第一条消息,如下所示:
现在,如果不是x
在控制台中记录变量,我只需将其传递给下一个方法,如下所示:
服务器发送的事件由客户端检索(我在 chrome 开发工具中看到它们)但模板中没有显示任何内容,表明未填充字符串数组...
顺便说一句,我不得不删除它,JSON.parse(x.data)
因为它会导致错误。
c# - EventSource 未写入 SQL 数据库
我正在使用 EventSource 通过 EnterpriseLibrary.SemanticLogging 将我的事件记录到 SQL 数据库中,
以下是测试方法:
ApplicationEventSource 类通过以下方法从 EventSource 派生
WriteEvent 时我没有收到错误,但没有任何内容记录到表Trace
typescript - Angular2/typescript 和 SSE (EventSource)
首先,我对 ng2 和 typescript 很陌生。
我试图完成的是在 Angular2 组件中实现 Server-Sent 事件。我已经按照此处早期文章中提到的示例进行操作,但我的问题是无法识别“EventSource”对象(红色下划线,在 VS Code 中)。
我不确定我是否遗漏了一些参考资料……我的参考资料是:
这就是我实现事件源客户端的方式:
javascript - 在第二个的 onopen 方法上关闭第一个事件源
我正在开发一个使用 window.EventSource 将数据流式传输到表格视图的应用程序。由于每个服务器的最大连接数限制为 6,我试图在给定的时间点拥有一个 EventSource 对象,所以基本上我需要在第二个的 onopen 方法上关闭第一个事件源对象然后第二个的 onmessage 事件会将数据流式传输到表视图。考虑以下代码在 onclick 事件上运行,
上面的代码有效,但正如我所提到的,而不是直接关闭 firstEventSource,我需要通过确保第二个事件源已打开它的连接来关闭它。
javascript - Fullcalendar - 客户端删除服务器发送事件消息中的事件时,事件消失
我有一个服务器,我在其中通知其他客户端完整日历事件已被修改、删除或添加。修改和添加没有任何问题,但是当我尝试在事件源侦听器中删除事件时,每个事件都会消失。有人知道为什么吗?我正在使用 fullcalendar 的 angularJS 分支,删除事件源侦听器中的事件的代码如下所示。我还尝试删除每个事件并在我的数据库中查询新事件,但除非执行完整的网站重新加载,否则完整日历不会呈现任何内容。