好吗 - 使用 setInterval 进行数据刷新

Is it good - use setInterval for data refreshing?

本文关键字:数据 刷新 setInterval 使用 好吗      更新时间:2023-09-26

>我有一个问题 - 我应该尽快为用户更新信息,但我不知道确切的时间。

我使用 setInterval 函数在检查之前检查当前状态和状态之间的差异。如果有任何差异,那么我会发送 AJAX 请求并更新信息。不好吗?在这种情况下,我无法(或不知道如何)收听任何事件。

那么间隔时间呢?所有用户(同时~300)都来自本地网络(ping 15-20毫秒)。我必须立即刷新信息。我应该最好使用 50 毫秒还是 500 毫秒?

如果问题不是很清楚,就问 - 我会尝试用换句话说说出来。提前致谢

解决方案:Websocket

Websocket 允许客户端应用程序响应从服务器发起的消息(将其与 HTTP 进行比较,其中客户端需要首先通过请求向服务器请求数据)。一个好的解决方案是利用 websocket 库或框架。在客户端上,您需要创建与服务器的 websocket 连接,在服务器上,您需要在发生更新时提醒任何打开的 websocket。

间隔问题

它不缩放,您可以将间隔设置为 4000 毫秒,并且一旦达到 1000 个用户......您将以每分钟10000个请求和响应猛击服务器...这将使用大量数据并使用处理来不返回任何内容。 Websocket 仅当您要发送的事件实际发生时,才会将数据发送到客户端代理。

后端:PHP

框架

  • 棘轮
  • 棘轮源代码
  • phpwebsocket
  • PHP-Websockets-Server

只需将上述框架之一实现为 websocket 连接,然后您将注册为此端点的客户端,它将在您定义的任何事件上发送数据。