我正在编写一个PHP后端,JS / Jquery前端应用程序,该应用程序将允许用户在近附近进行实时“通信”。至少那是希望,我的问题是我最好的行动方针是什么?我最好使用WebSocket在服务器和客户端之间发送数据,还是使用AJAX和某种计时器(x秒)更好。我对AJAX方式感到担心的是,每15-30秒有10个以上的客户机都在请求数据,这可能会增加服务器的负担。我需要使它接近实时,因此5分钟并不是很现实。
我要尝试执行的一个示例是,如果我在一个页面上共有5个用户,并且用户1更新了他们的状态,我希望用户2、3、4和5尽快看到更新无需刷新。
我对自己认为最好的事情感到mixed贬不一,我不想以一种方式开始做它,而在完成一半的工作后发现它是不安全的或可怕的。像这样的应用程序,我的最佳选择是什么?
答案 0 :(得分:2)
以下是流行的可能解决方案的列表:
因此,如您所说,对于短轮询而言,它占用大量资源,因此我们将其从列表中删除。 对于长时间轮询,其思想是将请求发送到服务器,并且除非发生新事件(保留请求),否则服务器不会响应(但该请求很少被使用),但是在现代开发中很少使用。因此,如果您要与其他开发人员一起工作,那是一个错误的决定。
对于WebRTC,浏览器兼容性不是很好,在W3C中仍然是草案。
因此,您没有使用WebSockets了,是的,它们消耗ram但不消耗CPU。 ram便宜得多(并且它也不会消耗太多)。
关于安全性,可以将它们视为相等(WebRTC除外,因为它实际上是P2P通信,所以更好)
旁注:不要想太多了:)
以下一些资源可以为您提供帮助:
答案 1 :(得分:0)
有一种方法可以制作RTC,RealTime App,只需使用Socket.io“ WebSocket”进行信号传递,然后再查看这些WebPage的完整视图:
https://www.html5rocks.com/en/tutorials/webrtc
https://w3c.github.io/webrtc-pc/#rtcsignalingstate-enum
https://www.w3.org/TR/mediacapture-streams/#legacy-interface-extensions
我将通过enter link description here这本书开始开发这项技术,它将打开您对RTC使用情况和所有详细信息的看法。