如何捕获SSE Eventsource确认

我正在使用此代码发送SSE消息给浏览器客户端。

https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback

节点服务器

response.writeHead(200, { 'Content-Type': 'text/event-stream', 'Access-Control-Allow-Origin': '*' }); response.write(message); response.end(); 

而对于我使用这个javascript的客户端:

 var source = new EventSource('myurl'); source.addEventListener('add', addHandler, false); source.addEventListener('remove', removeHandler, false); 

一切工作正常,但服务器如何知道客户端确实收到它? 我猜SSE正在使用TCP,有什么方法可以收到确认?

SSE是一个一对多的Push协议。 所以没有确认。 您可以在收到后发送AJAX请求,但模式中没有提供此function。

SSE是将数据从服务器推送到客户端的单向通信协议。

没有办法让客户端接收事件。

如果承认是必须的,那么您可能需要双向沟通,例如websockets。