服务器发送的事件如何实际工作?

时间:2011-10-03 14:09:46

标签: server-sent-events

所以我理解服务器发送事件的概念(EventSource):

  • 客户端通过EventSource
  • 连接到端点
  • 客户端只侦听从端点发送的消息

我很困惑的是它在服务器上是如何工作的。我已经看过不同的例子,但想到的是Mozilla的:http://hacks.mozilla.org/2011/06/a-wall-powered-by-eventsource-and-server-sent-events/

现在这可能只是一个不好的例子,但正如我所理解的那样,服务器端如何工作有点道理:

  • 数据存储区中的某些更改,例如数据库
  • 服务器端脚本每隔N秒轮询一次数据存储
  • 如果轮询脚本注意到更改,则会向客户端触发服务器发送的事件

这有意义吗?从准直的角度来看,它真的是如何运作的吗?

1 个答案:

答案 0 :(得分:1)

您还需要确保调用res.flushHeaders(),否则Node.js在您调用res.end()之前不会发送HTTP标头。有关完整的示例,请参见this tutorial