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

时间:2016-10-19 17:24:12

标签: json polling long-polling server-sent-events

我正在使用SSE aproach的项目,每隔0.5秒将数据从服务器推送到浏览器。

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

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

在这种情况下,有什么值得关注的吗?我的意思是,有没有什么方法可以通过这样的数据量来重载浏览器或客户端系统?

是否有任何情况可以证明页面每隔X秒刷新一次?

1 个答案:

答案 0 :(得分:1)

如果没有更具体的细节,答案是“可能,但可能不是[需要刷新页面]”。

据我所知,SSE方面没有特别限制。因此,在从服务器接收数据项,更新div中的值而不存储接收数据的典型示例中,内存不应该增长。两秒钟也没问题。

如果您要存储数据(例如,绘制最后N个值的图表),您需要确保定期丢弃早于过去N的值。

我的担忧在其他地方:

  • 浏览器错误
  • Javascript内存管理。 (例如,无意的循环依赖,垃圾收集器无法处理。)(This看起来很好讨论这个主题;另一个here。)
  • 不可靠的互联网 - 一路上的某些服务器或路由器决定关闭已经打开很长时间的套接字。 (SSE 应该只是在发生这种情况时才会自动重新连接 - 我更喜欢在顶部添加一些keep-alive消息,因为有时套接字会以非干净的方式关闭。)

您可能还会问自己,人们将保持浏览器打开的时间长短,如果这是您需要担心的问题。

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