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

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

我要尝试执行的一个示例是,如果我在一个页面上共有5个用户,并且用户1更新了他们的状态,我希望用户2、3、4和5尽可能快地看到更新,而不必刷新。

我对自己认为最好的事情感到mixed贬不一,我不想以一种方式开始做,而在完成一半后发现它是不安全的或可怕的。这样的应用程序最好的选择是什么?


慕的地6264312
浏览 145回答 2
2回答

梵蒂冈之花

以下列出了可能的流行解决方案:简短轮询(您在AJAX中指的是长轮询(也是AJAX,但请求太多)网络套接字WebRTC因此,如您所说,对于短轮询而言,它占用了大量资源,因此我们将其从列表中删除。对于长轮询,其思想是将请求发送到服务器,并且除非发生新事件(保留请求),否则服务器不会响应(但此请求很少在现代开发中使用)。因此,如果您要与其他开发人员一起工作,那将是一个错误的决定。对于WebRTC,浏览器兼容性不是很好,在W3C中仍然是草稿。因此,您不用使用WebSockets,是的,它们消耗ram但不消耗CPU。ram便宜得多(并且它也不会消耗太多)。至于安全性,可以认为它们是相等的(WebRTC除外,因为它实际上是P2P通信,所以更好)旁注:不要想太多了:)以下是一些可以帮助您的资源:https://webrtc.org/https://github.com/walkor/phpsocket.io//类似于Socket.io的PHP套接字库https://socket.ioWeb上有哪些实时通信协议?协议清单https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9很棒的民意测验,websocket和涵盖了SSE
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript