【发布时间】:2020-05-01 11:38:26
【问题描述】:
我无法理解 SSE 的“自动重新连接”是如何工作的。
我一直在阅读 Mozilla 和 WC3 的文档以及其他一些讨论,但我仍然不确定它是如何工作的。
https://html.spec.whatwg.org/multipage/server-sent-events.html https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
我已经在 Golang 中使用 gorilla/mux 实现了 SSE,并且一切正常。现在到了有趣的部分,我可以断开与服务器的连接,但连接会在几秒钟后神奇地恢复。我自己没有为此实现任何功能,所以我不确定这是怎么发生的?
所有主流浏览器都会尝试自动重新连接,但我从未手动设置任何事件 ID。浏览器会重新连接,但不会收到断开连接期间发送的任何丢失数据吗? (这就是使用EventID可以解决的问题,但我对它没有兴趣)。即,浏览器是否可以在不使用 EventID 的情况下重新连接?或者是其他什么东西使这种“重新连接”成为可能?
【问题讨论】:
-
客户端自动重新连接到服务器,并将标头 Last-Event-ID 设置为服务器发送的最后一个 ID。服务器应用程序可以使用该 ID 回填在断开连接期间丢失的数据。
标签: http go server-sent-events