好不好用setInterval刷新数据?

Is it good - use setInterval for data refreshing?

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

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

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

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

解决方案:Websocket

Websockets 允许客户端应用程序响应从服务器发起的消息(与 HTTP 相比,客户端需要首先通过请求向服务器请求数据)。一个好的解决方案是使用 websocket 库或框架。在客户端上,您需要创建与服务器的 websocket 连接,而在服务器上,您需要在发生更新时提醒所有打开的 websockets。

间隔问题

它无法扩展,您可以将间隔设置为 4000 毫秒,但一旦达到 1000 个用户...您将每分钟用 10000 个请求和响应冲击您的服务器...这将使用大量数据和使用处理 return 什么都没有。只有当你想发送的事件实际发生时,Websockets才会向客户端发送数据。

后端:PHP

框架

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