HTTP流和服务器发送事件有什么区别?
我的理解是HTTP流式传输涉及客户端发送HTTP请求,然后响应随时间发送的请求,允许服务器基本上推送到客户端。在我所看到的情况下,SSE似乎按照相同的原则运作,但更为正式化。这接近正确的理解吗?
我看到了这些问题,但他们并没有直接回答我的问题。
HTTP: what are the relations between pipelining, keep-alive and Server Sent Events? What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?
我还看了这个用于设置SSE的,看起来我想象的是如何设置HTTP流。
回答如下:SSE实际上是HTTP流式传输的一种形式。它只是一个MIME类型为“text / event-stream”的HTTP响应,它发送以双换行符结尾的纯文本消息。
SSE不是以前不可能做到的事情,但网站必须使用WebSocket连接,AJAX长轮询,彗星,定期轮询等,现在SSE API已经标准化,实现非常简单。看到:
https://developer.mozilla/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events
要记住的一件事是IE不支持SSE,包括Edge和IE Mobile:
- http://caniuse/#feat=eventsource
因此,除非您知道他们使用的浏览器,否则您无法真正将它用于更广泛的受众。