gpt4 book ai didi

javascript - 服务器发送的事件 EventStream 不触发 "onmessage"但 Chrome 调试在 "EventStream"选项卡中显示数据

转载 作者:可可西里 更新时间:2023-11-01 01:24:27 51 4
gpt4 key购买 nike

我将 SSE 与 EventStream 一起用于 javascript 的内置逻辑。当 onopen 返回成功结果时,onmessage 回调不起作用。奇怪的是,在 Chrome 中的 EventStream 选项卡中,数据结果按照我的预期列出。

这是我的 EventSource 的 JS 片段

var eventSource;
$(function () {
eventSource = new EventSource('get/status/');

eventSource.onopen = function () {
console.log("Sse connection opened");
};

eventSource.onerror = function () {
console.log("error occured");
};

eventSource.onmessage = function (event) {
console.log("received");
};

});

enter image description here

如您所见,正在发出数据,但从未触发 onmessage。任何人都可以向我解释这种行为吗?

编辑:onopenonerror 都起作用。

最佳答案

根据屏幕截图,您的事件流包含类型为 "foo" 的事件,而不是 "message"。这只是默认类型(事件流中缺少 event 字段)。来自 the spec :

  1. Initialize event's type attribute to message, […]

  2. If the event type buffer has a value other than the empty string, change the type of the newly created event to equal the value of the event type buffer.

在这里,您应该将监听器设置为监听 "foo" 事件:

eventSource.addEventListener("foo", function() {...})

关于javascript - 服务器发送的事件 EventStream 不触发 "onmessage"但 Chrome 调试在 "EventStream"选项卡中显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971499/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com