为了账号安全,请及时绑定邮箱和手机立即绑定

实时客户信息同步,最佳实践和建议

实时客户信息同步,最佳实践和建议

慕的地6264312 2021-05-12 13:14:55
我正在编写一个PHP后端,JS / Jquery前端应用程序,该应用程序将允许用户近乎实时地“通信” 。至少那是希望,我的问题是我最好的行动方针是什么?我最好使用WebSocket在服务器和客户端之间发送数据,还是使用AJAX和某种计时器(x的秒数)更好。我对AJAX方式感到担心的是,每15-30秒有10个以上的客户机都在请求数据,这可能会使服务器负担重。我需要使它接近实时,因此5分钟实际上是不现实的。我要尝试执行的一个示例是,如果我在一个页面上共有5个用户,并且用户1更新了他们的状态,我希望用户2、3、4和5尽可能快地看到更新,而不必刷新。我对自己认为最好的事情感到mixed贬不一,我不想以一种方式开始做,而在完成一半后发现它是不安全的或可怕的。这样的应用程序最好的选择是什么?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

以下列出了可能的流行解决方案:

  1. 简短轮询(您在AJAX中指的是

  2. 长轮询(也是AJAX,但请求太多)

  3. 网络套接字

  4. WebRTC

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

对于WebRTC,浏览器兼容性不是很好,在W3C中仍然是草稿。

因此,您不用使用WebSockets,是的,它们消耗ram但不消耗CPU。ram便宜得多(并且它也不会消耗太多)。

至于安全性,可以认为它们是相等的(WebRTC除外,因为它实际上是P2P通信,所以更好)

旁注:不要想太多了:)

以下是一些可以帮助您的资源:

  1. https://webrtc.org/

  2. https://github.com/walkor/phpsocket.io//类似于Socket.io的PHP套接字库

  3. https://socket.io

  4. Web上有哪些实时通信协议?协议清单

  5. https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9很棒的民意测验,websocket和涵盖了SSE



查看完整回答
反对 回复 2021-05-27
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信