服务器发送的事件是否有可能以任何方式使浏览器过载?

Is it possible a Server-Sent Events to overload the browser in any way?

我在一个项目中工作,该项目使用 SSE 方法每 0.5 秒将数据从服务器推送到浏览器。

它从 Mysql 抓取数据,将其转换为 JSON 并将其发送到浏览器。

我想知道在极端情况下,浏览器会工作几个月(这是可能的)。服务器每天向浏览器发送 2.764.800 JSON。那将是每月 82.944.000 次推送。

请问这种情况有什么需要注意的吗?我的意思是,有没有办法让浏览器或客户端系统因如此大量的数据而超载?

是否有任何场景可以证明每 X 秒刷新一次页面是合理的?

没有更具体的细节,答案是"maybe, but probably not [a need to have a page refresh]"。

据我所知,SSE方面没有特别的限制。因此,在从服务器接收数据项、更新 div 中的值并且不存储接收到的数据的非常典型的示例中,内存应该不会增长。一秒钟两次也可以。

如果您要存储数据(例如绘制最后 N 个值的图形),您需要确保定期丢弃比最后 N 个旧的值。

我的担忧无处不在:

  • 浏览器错误
  • Javascript内存管理。 (例如,无意的循环依赖,垃圾收集器无法处理。)(This looks a good discussion on this theme; another one here.)
  • 不可靠的互联网 - 某些服务器或路由器决定关闭已打开很长时间的套接字。 (SSE 应该 只是在发生这种情况时自动重新连接 - 我更喜欢在顶部添加一些保持活动消息,因为有时套接字会关闭不干净。)

您可能还会问自己,人们会将浏览器打开多长时间,这是否是您需要担心的事情。

在交易应用程序中,我发现市场收盘(无论是每天还是周五晚上)是故意关闭套接字的好时机。