【发布时间】:2018-09-20 10:54:05
【问题描述】:
https://developer.mozilla.org/en-US/docs/Web/API/EventSource
EventSource 接口是 Web 内容与服务器发送事件的接口。 EventSource 实例打开与 HTTP 服务器的持久连接,该服务器以文本/事件流格式发送事件。连接保持打开状态,直到通过调用 EventSource.close() 关闭。
据我了解,服务器发送的事件需要persistent HTTP connection (Connection: keep-alive),因此类似于在使用 Web 套接字时保持连接有效。
如果连接是持久的,为什么服务器发送的事件是单向的? Web 套接字连接也是持久的。
在这种情况下,如果我向我的 HTTP 服务发送请求并且由于EventSource 而打开了持久连接,会发生什么情况。它会重新使用EventSource打开的HTTP连接还是打开一个新的连接?
如果它重复使用EventSource打开的连接,它如何被认为是单向的?
可能是微不足道的,但我不得不问,因为它不清楚。因为没有提及当EventSource 打开现有连接时后续 HTTP 请求会发生什么。
例如,在我看来,使用 SSE 实现集中式聊天应用程序是可能的:
用户 1 向用户 2 发送消息(通过将其发送到 HTTP 服务器)。服务器向用户 2 发送新消息,用户 2 向 HTTP 服务器发送另一个请求,用户 1 的消息,服务器向用户 1 发送事件。
怎么不认为是双向的?
相关:
What's the behavioral difference between HTTP Stay-Alive and Websockets?
【问题讨论】: