虽然在其他问题中,人们声称 EventSource 有相当好的文档记录,但我发现它在某些情况下更隐含而不是明确。
我的理解是,当您在 JS 中初始化 EventSource 对象时,它会使用指定的 URI 打开与您的服务器的连接。
此连接是使用 GET 发起的吗?
(不确定这是否构成第二个问题)是否可以使用/强制使用另一种 HTTP 方法(POST)?
虽然在其他问题中,人们声称 EventSource 有相当好的文档记录,但我发现它在某些情况下更隐含而不是明确。
我的理解是,当您在 JS 中初始化 EventSource 对象时,它会使用指定的 URI 打开与您的服务器的连接。
此连接是使用 GET 发起的吗?
(不确定这是否构成第二个问题)是否可以使用/强制使用另一种 HTTP 方法(POST)?
使用EventSource
接口时的请求方法是GET
请求。您可以在传递给构造函数的 URL 中包含查询字符串,并在服务器上解析查询字符串。
const stream = "data: event stream\n\n";
const blob = new Blob([stream], {type:"text/event-stream"});
const blobURL = URL.createObjectURL(blob);
const es = new EventSource(blobURL);
es.onmessage = e => {
console.log(e.data);
}
es.onerror = e => {
es.close();
}