问题标签 [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.
javascript - HTML5 EventSource 发送多个请求
我正在尝试使用 Spring SseEmitter实现服务器发送事件,如本Youtube 视频中所述。
我能够启动事件流并从服务器发送事件接收数据。
但是,我可以看到EventStream
从客户端触发并到达服务器的多种类型的请求。我理解的方式EventSource
应该发送一个HTTP
请求,然后应该保持half duplex
与服务器的连接,使用哪个服务器将事件发送到客户端。
为什么它会定期发送请求?那不是像轮询而不是半双工连接吗?
贝娄是我正在使用的代码。
服务器代码
客户端代码
Bellow 是来自 chrome 的客户端网络选项卡屏幕截图
这是服务器端日志
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),其中,
- Last-Event-ID 是一个查询参数,需要在 api 端点中发送,例如 /api/eventstream?lastEventId=0
- IE 的 2 KB 填充,如示例中所述,我们可以在节点部分使用 (response.write(":" + Array(2049).join(" ") + "\n");)
- 您需要每 15-30 秒发送一次“评论”消息,这些消息将用作检测断开连接的心跳(这应该怎么做?)
因此,在 npm install event-source-polyfill 然后完成 1,2 和 3 的步骤之后,它最终将在 IE 中工作,这是一个公平的理解。
javascript - 带有 POST 的 HTTP 事件源
我已经通过带有一些参数的 POST 请求在服务器端实现了事件源流 ( http://www.w3schools.com/html/html5_serversentevents.asp )。我的意思是,当我向服务器发送带有一些参数的 POST 请求时,它会根据参数返回结果。我已经用 Google Chrome 的 Insomnia App 对其进行了测试,它可以工作,但我担心 javascript 中的 EventSource API 不允许我向服务器发送 POST 请求。
我错过了什么吗?向服务于事件流的 URI 发送 POST 请求不是标准吗?
java - 为 Android 实现 Kaazing EventSource
我正在编写一个需要EventSource
接收服务器发送事件的 Android 应用程序。我正在尝试创建SseEventSourceFactory
对象,但NoSuchElement
在创建时出现异常。我怎样才能解决这个问题?
这是我的代码:
javascript - 使用 AngularJS 的带有 cookie 的事件源
我一直在研究使用 EventSource 将服务器事件推送到客户端,但我需要客户端能够识别自己,这样它就不会只获取每个客户端的每个事件。我正在尝试使用 cookie 来实现这一点,但不知何故,cookie 似乎从未通过。谁能指出一个创建 EventSource 并随请求发送 cookie 的示例?
javascript - 如何订阅事件流 - 服务器端
我有一个返回text/event-stream
数据的 url,所以我试图连接并打印我找到的所有内容:
不幸的是,这在服务器端不起作用。我可以这样连接吗?
javascript - JavaScript 请求与数据的连接
我的任务是创建 javascript 实时应用程序。服务器端已准备好(wss://),我必须创建客户端。
我遇到的主要任务:
客户端可以 ping 服务器以检查您的连接性。客户端执行 ping,包括序列号(允许跟踪确切的 ping 持续时间)。
服务器将响应:
客户要求
服务器将响应表列表,并在状态发生变化时使用 table_added、table_removed 和 table_updated 消息更新客户端。
table_updated 事件
问题:我知道,我可以使用new EventSource()
,这是正确的吗?我怎样才能发送数据$type
,例如用它?
javascript - 向 EventSource 构造函数提供 Last-Event-Id
是否可以设置 EventSource 的 Last-Event-Id 标头?我有一个简单的聊天应用程序,可以缓存消息。当我连接时,我会发送自 Last-Event-Id 以来的所有聊天,如果未提供,则发送所有聊天。
由于我保留了这些消息,我认为我可以将 Id 传递给 EventSource 构造函数,以避免它返回我已经拥有的所有消息。这根本不可能吗?
javascript - 上证所慢得令人难以置信
测试.php:
这需要用户输入(当前是一个用于测试的文本框)并将其发送到接收器,并将接收器响应的内容写回控制台,我从未收到来自接收器的错误。它还为发送的 SSE 添加了一个事件侦听器。
接收器.php:
如您所见,这非常简单,只有在发送回写入成功之前将数据写入 data.txt 的功能。data.txt 只是传递给 massrelay.php 的“管”数据。
massrelay.php:
massrelay.php 检查 data.txt 中是否有任何数据,如果有,将使用 SSE 将其传递给具有事件侦听器的任何人,一旦读取数据,它将清除数据文件。
除了massrelay.php从数据文件发送数据可能需要30秒到10分钟的时间之外,整个事情实际上工作得很好。对于网页游戏,这是完全不能接受的,因为您需要实时操作。我想知道它是否由于我的代码中的缺陷而花费了这么长时间,或者我不是在考虑硬件(我自己将它托管在带有 sempron 的 2006 戴尔上)。如果有人看到它有任何问题,请告诉我,谢谢。
cqrs - 使用其他模型进行验证
验证使用其他模型的事件的选项有哪些?
购物车示例:
将购物车项目添加到购物车时,应该检查该项目是否尚未售罄。