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

javascript - 动态 EventSource URL(HTML5 服务器发送事件)

是否可以将动态 url 用于服务器发送事件?例如

如果没有,任何解决方法或建议将不胜感激。

0 投票
0 回答
441 浏览

javascript - IE中的SSEEmitter不工作Angular 2

在此处输入图像描述我已经实现了这个事件源。但是,正如我使用的许多人所建议的那样,它不能在 IE 上工作

https://github.com/remy/polyfills/blob/master/EventSource.js这个用于 IE 的 pollyfill。

这是由

是否有适用于 HTML5 服务器发送事件的 Microsoft 等效项?

在我需要这个 EventSource 的代码中,我已经这样做了:

但是,再次在 IE 上运行时,我得到了我之前得到的错误:

请建议我是否缺少任何东西或 Pollyfills 的问题?

0 投票
1 回答
600 浏览

etw - 如何将 EventSource 添加到 Web 应用程序

我们终于在我们的服务结构集群中正确配置了 EventSource 和 ElasticSearch。现在我们有了想要将 EventSources 添加到与我们的服务结构应用程序交互的 Web 应用程序,以便我们可以在一个位置查看所有事件(应用程序日志)并通过 Kibana 过滤/查询。

我们的问题似乎与作为 exe 的服务结构应用程序和无状态的 .NET 4.6(不是 .net CORE)Web 应用程序之间的差异有关。在 service Fabric 中,我们将实例化管道的 using 语句放在 Program.cs 中并设置无限睡眠。

如何在 Web 应用程序中执行此操作?这是我们用于 EventSource 的非 ServiceFabric 实现的管道代码。这就是我们正在使用的:

我们可以在 using 语句中看到管道并将事件发送到 ElasticSearch,但不能在它之外。所以问题是:

  1. 我们如何/在哪里放置我们的管道使用语句用于 Web 应用程序?
  2. 我们是否需要在每次记录时实例化和销毁管道,或者是否有办法在无状态 Web 事件中重用该管道?这看起来会非常昂贵并且会损害性能。也许我们可以缓存管道?

就是这样,如果您需要澄清,请告诉我。我看到很多用于客户端应用程序的 doco,但对于 Web 应用程序来说却不多。

谢谢,格雷格

使用解决方案代码更新

诊断管道管道;

0 投票
1 回答
3125 浏览

load-balancing - 服务器如何发送消息 SSE 在多个服务器实例环境中工作

我有一个关于如何使 SSE 在多个服务器环境中工作的问题。

在 UI 中,有两个步骤:

  1. UI 中的用户可以发布到 api 以更新数据

  2. 用户发布到 api 后,服务器正在向 UI 发送事件以更新 UI

在一个服务器环境中,这工作得非常好,完全没有问题。

但是在多服务器实例环境中,这是行不通的。例如,我有两个服务器实例,UI 订阅了服务器 1,那么服务器 1 记住了连接,但是数据更新是从服务器 2 来的,当数据发生变化时,服务器 2 中的 SSE 没有连接。那么在这个senario,服务器 2 如何将 SSE 发送到 UI?

为了让 SSE 在多个服务器环境中工作,我们是否需要采用任何保存方案来保存连接信息,以便任何服务器实例都能准确地将 SSE 发送到 UI?

让我再澄清一下:是的,服务 1 和服务 2 都位于负载均衡器之后,它们不必具有相同的 URL。UI 是纯前端应用程序,甚至可以是移动应用程序。所以,如果 UI 正在向 server1 的 LB 发送 eventSource 请求,那么只有这个实例可以使用这个连接将事件发送回 UI,对吗?但是如果我们有多个服务器 1 实例,这意味着除当前实例之外的任何服务器 1 实例都不能将事件发送回 UI。我相信这是 SSE 的限制,除非连接可以在所有实例之间共享。但是如何。

谢谢

0 投票
0 回答
495 浏览

strongloop - 在环回更改流中过滤结果

Strongloop Loopback 是否支持在更改流中进行过滤?

以下适用于所有模型更改,但我只对模型部分的更改感兴趣。我可以向 EventSource-URL 添加过滤吗?

谢谢

0 投票
1 回答
310 浏览

c# - .Net:EventSource 的子类子类

我有一个跨越许多项目的 C# 解决方案。我创建了一个从 Systme.Diagnostics.Tracing.EventSource 继承的跟踪类,称为 MyCustomEventSource,它处理我的大部分跟踪事件。我想为每个项目创建此类的子类,以便我可以实现与特定项目相关的事件。

我还在编写一个 ETW 消费者,我可以在其中轻松收听来自系统不同组件的事件。

但是我的消费者没有正确识别事件:当我监听 MyCustomEventSource 时,每个事件的 EventName 字段设置为方法的名称,而 FormattedMessage 设置为 Message 属性。例子:

如果我监听 MyCustomEventSource,并且一个应用调用了 ConfigParameterLoaded,那么我会得到一个名称为 ConfigParameterLoaded 的事件,它的 FormattedMessage 是“配置参数“x”的值是 y。”

这可以。

但是,如果我在 MyCustomEventSource 的子类上创建类似的方法并从该子类触发事件,我的 EventName 将始终为“EventSourceMessage”,而 FormattedMessage 将始终为空。

我认为这可能是因为 System.Diagnostics.Tracing.EventAttribute 没有 AttributeUsage(Inherited=true)。

我的问题是:有没有办法解决这个问题,并在从子类触发事件时获取正确的信息?

0 投票
1 回答
846 浏览

servicestack - ServiceStack 服务器端事件错误

试图处理这个问题,但不明白为什么会出现这样的错误。

我在 cosole Google Chrome 中收到此错误:EventSource 的响应具有不是“text/event-stream”的 MIME 类型(“text/html”)。中止连接。

感谢帮助!

…………

在使用 Fidler 分析请求后(感谢@mythz 的想法),我发现以下内容:如果您在一个浏览器中注销,则有 2 个客户端浏览器运行服务器事件的处理程序,那么另一个浏览器将获得 2 个事件,一个正常,另一个“EventSource 的响应具有 MIME 类型”(http 状态 = 401)。

现在问题出现了,如果我向他们发送 SessionId,为什么两个客户端都会收到所有事件?

您可以让每个用户都收到他们的事件吗?

var eventSource = new EventSource('/event-stream');

客户端处理程序:

0 投票
2 回答
549 浏览

javascript - 使用EventSource获取User在线状态可靠吗?

我使用 EventSource 方法来获取我网站上活跃用户的在线状态。在下面的 JavaScript 代码中插入每个页面

var source = new EventSource("set_online.php");

因此,此代码正在set_online.php连续执行文件。

在服务器端,即在set_online.php以下代码中执行

现在我对此有两个担忧:

  1. 由于数据库实时不断更新last_active,是否会影响服务器负载?
  2. 只要用户在网站上,连接就会打开,是否会产生漏洞?
0 投票
1 回答
668 浏览

c# - c# PushStreamContent 刷新错误?

你们中有人尝试过将 PushStreamContent 与 WebApi 一起使用吗?我注意到奇怪的行为。这是我的代码(我知道的糟糕的代码 - 只是测试)

现在......似乎一切正常,但事实上,当我尝试在前端使用它时,我大部分时间都会收到一条落后于当前状态的消息。所以起初我有空流(在前端),然后在调用“推送”方法后我得到“欢迎”消息等等。当我使用异步方法时,行为保持不变。此外,它不是确定性的。有时我会收到所有消息,有时会收到一条消息。

请。不要因为这个问题杀了我;)我可能会遗漏一些东西。

0 投票
0 回答
149 浏览

http - Go 代理不支持事件源

我正在用 Go 开发一个 Web 服务,它将它的 UI 委托给一个vue.jswebpack.

My Go 服务负责托管 UI 和 UI 使用的 REST API。

在开发模式下,我希望从工具(例如基于 inotify 的自动重新加载)中受益vue.jswebpack因此我在 Go 程序中添加了一个开关来执行此操作:

所以基本上,在开发模式下,我可以启动 webpack 的开发服务器(使用npm run dev),我的 Go 程序将所有 UI 请求委托给它。

除了几秒钟后,Chrome 抱怨说:

GET http://localhost:9999/__webpack_hmr net::ERR_INCOMPLETE_CHUNKED_ENCODING

自动刷新会停止工作一段时间并最终恢复,但它比我直接连接到 webpack 的独立服务器要慢。

我认为可以追踪 Go 中的问题,httputil.ReverseProxy并且我相信它没有任何特定的代码来正确处理事件源。

这是一个已知问题吗?我能做些什么来让我的 Go 反向代理事件源感知/兼容吗?