gpt4 book ai didi

javascript - 实时客户信息同步、最佳实践和建议

转载 作者:行者123 更新时间:2023-12-02 23:40:38 24 4
gpt4 key购买 nike

我正在编写一个 PHP 后端、JS/Jquery 前端应用程序,它允许用户近乎实时地“通信”。至少这是希望,我的问题是我最好的行动方针是什么?我最好使用 WebSockets 在服务器和客户端之间发送数据,还是使用 AJAX 和某种计时器(x 秒数)更好。我对 AJAX 方式的担忧是,如果有 10 多个客户端每 15-30 秒都请求数据,可能会对服务器造成负担。我需要它接近实时,所以 5 分钟不太现实。

我想要做的一个例子是,如果我在一个页面上有 5 个用户,并且用户 1 更新了他们的状态,我希望用户 2、3、4 和 5 尽快看到更新无需刷新。

我对我认为最好的事情感到困惑,我不想开始以一种方式做,但在完成一半后发现它不安全或糟糕。对于这样的应用程序,我的最佳路线是什么?

最佳答案

以下是流行的可能解决方案的列表:

  1. 短轮询(您在 AJAX 中所指的内容
  2. 长轮询(也是 AJAX,但请求数量不要太多)
  3. 网络套接字
  4. WebRTC

因此,对于简短的轮询,正如您所说,它会消耗大量资源,因此让我们将其从列表中删除。至于长轮询,其思想是向服务器发送请求,除非发生新事件(保留请求),否则服务器不会响应,但在现代开发中很少使用。因此,如果您要与其他开发人员合作,这是一个错误的决定。

对于 WebRTC,浏览器兼容性不是很好,仍然是 W3C 的草案。

因此,您将无法使用 WebSocket,是的,它们消耗 RAM,但不消耗 CPU。 ram 便宜得多(而且消耗量也没有那么大)。

就安全性而言,它们可以被认为是平等的(除了WebRTC,它更好,因为它实际上是P2P通信)

旁注:不要想太多:)

这里有一些可以帮助您的资源:

  1. https://webrtc.org/
  2. https://github.com/walkor/phpsocket.io//类似于 Socket.io 的 PHP Socket 库
  3. https://socket.io
  4. What are the realtime communication protocols available for the web?协议(protocol)列表
  5. https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9关于投票、websockets 的好文章,也涵盖了 SSE

关于javascript - 实时客户信息同步、最佳实践和建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com