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

javascript - HTML5 EventSource 发送多个请求

我正在尝试使用 Spring SseEmitter实现服务器发送事件,如本Youtube 视频中所述。

我能够启动事件流并从服务器发送事件接收数据。

但是,我可以看到EventStream从客户端触发并到达服务器的多种类型的请求。我理解的方式EventSource应该发送一个HTTP请求,然后应该保持half duplex与服务器的连接,使用哪个服务器将事件发送到客户端。

为什么它会定期发送请求?那不是像轮询而不是半双工连接吗?

贝娄是我正在使用的代码。

服务器代码

客户端代码

Bellow 是来自 chrome 的客户端网络选项卡屏幕截图

在此处输入图像描述

这是服务器端日志

0 投票
1 回答
890 浏览

javascript - 在服务器端使用 event-source-polyfill (node.js)

为了支持 IE 和其他移动浏览器中的事件流,我正在尝试使用 event-source-polyfill ( https://www.npmjs.com/package/event-source-polyfill )。

谁能提供一个关于如何在节点服务上使用它的示例(或)它只是通过 npm install 添加它,然后我们应该都准备好了?从文档看来,有一些服务器端要求(https://www.npmjs.com/package/event-source-polyfill#server-side-requirements),其中,

  1. Last-Event-ID 是一个查询参数,需要在 api 端点中发送,例如 /api/eventstream?lastEventId=0
  2. IE 的 2 KB 填充,如示例中所述,我们可以在节点部分使用 (response.write(":" + Array(2049).join(" ") + "\n");)
  3. 您需要每 15-30 秒发送一次“评论”消息,这些消息将用作检测断开连接的心跳(这应该怎么做?)

因此,在 npm install event-source-polyfill 然后完成 1,2 和 3 的步骤之后,它最终将在 IE 中工作,这是一个公平的理解。

0 投票
0 回答
240 浏览

javascript - 带有 POST 的 HTTP 事件源

我已经通过带有一些参数的 POST 请求在服务器端实现了事件源流 ( http://www.w3schools.com/html/html5_serversentevents.asp )。我的意思是,当我向服务器发送带有一些参数的 POST 请求时,它会根据参数返回结果。我已经用 Google Chrome 的 Insomnia App 对其进行了测试,它可以工作,但我担心 javascript 中的 EventSource API 不允许我向服务器发送 POST 请求。

我错过了什么吗?向服务于事件流的 URI 发送 POST 请求不是标准吗?

0 投票
1 回答
525 浏览

java - 为 Android 实现 Kaazing EventSource

我正在编写一个需要EventSource接收服务器发送事件的 Android 应用程序。我正在尝试创建SseEventSourceFactory对象,但NoSuchElement在创建时出现异常。我怎样才能解决这个问题?

这是我的代码:

0 投票
1 回答
533 浏览

javascript - 使用 AngularJS 的带有 cookie 的事件源

我一直在研究使用 EventSource 将服务器事件推送到客户端,但我需要客户端能够识别自己,这样它就不会只获取每个客户端的每个事件。我正在尝试使用 cookie 来实现这一点,但不知何故,cookie 似乎从未通过。谁能指出一个创建 EventSource 并随请求发送 cookie 的示例?

0 投票
1 回答
2624 浏览

javascript - 如何订阅事件流 - 服务器端

我有一个返回text/event-stream数据的 url,所以我试图连接并打印我找到的所有内容:

不幸的是,这在服务器端不起作用。我可以这样连接吗?

0 投票
1 回答
64 浏览

javascript - JavaScript 请求与数据的连接

我的任务是创建 javascript 实时应用程序。服务器端已准备好(wss://),我必须创建客户端。

我遇到的主要任务:

客户端可以 ping 服务器以检查您的连接性。客户端执行 ping,包括序列号(允许跟踪确切的 ping 持续时间)。

服务器将响应:


客户要求

服务器将响应表列表,并在状态发生变化时使用 table_added、table_removed 和 table_updated 消息更新客户端。

table_updated 事件


问题:我知道,我可以使用new EventSource(),这是正确的吗?我怎样才能发送数据$type,例如用它?

0 投票
2 回答
1512 浏览

javascript - 向 EventSource 构造函数提供 Last-Event-Id

是否可以设置 EventSource 的 Last-Event-Id 标头?我有一个简单的聊天应用程序,可以缓存消息。当我连接时,我会发送自 Last-Event-Id 以来的所有聊天,如果未提供,则发送所有聊天。

由于我保留了这些消息,我认为我可以将 Id 传递给 EventSource 构造函数,以避免它返回我已经拥有的所有消息。这根本不可能吗?

0 投票
5 回答
2494 浏览

javascript - 上证所慢得令人难以置信

我目前正在写一个网页游戏的通讯框架,通讯图如下:代码如下:

测试.php:

这需要用户输入(当前是一个用于测试的文本框)并将其发送到接收器,并将接收器响应的内容写回控制台,我从未收到来自接收器的错误。它还为发送的 SSE 添加了一个事件侦听器。

接收器.php:

如您所见,这非常简单,只有在发送回写入成功之前将数据写入 data.txt 的功能。data.txt 只是传递给 massrelay.php 的“管”数据。

massrelay.php:

massrelay.php 检查 data.txt 中是否有任何数据,如果有,将使用 SSE 将其传递给具有事件侦听器的任何人,一旦读取数据,它将清除数据文件。

除了massrelay.php从数据文件发送数据可能需要30秒到10分钟的时间之外,整个事情实际上工作得很好。对于网页游戏,这是完全不能接受的,因为您需要实时操作。我想知道它是否由于我的代码中的缺陷而花费了这么长时间,或者我不是在考虑硬件(我自己将它托管在带有 sempron 的 2006 戴尔上)。如果有人看到它有任何问题,请告诉我,谢谢。

0 投票
2 回答
103 浏览

cqrs - 使用其他模型进行验证

验证使用其他模型的事件的选项有哪些?

购物车示例:

将购物车项目添加到购物车时,应该检查该项目是否尚未售罄。