我正在创建一个将Web套接字用于通知系统的应用程序。将应用程序放在带有父级Web套接字的iframe中是否更好,这样每次加载页面时都没有新的连接?或者它应该重新连接?
你有什么想法?
如果有人在PHP中有任何其他方式来获取通知而不是每10秒发送一次AJAX请求,请告诉我。
感谢。
答案 0 :(得分:2)
这是您所描述的选项之一。
该选项的问题在于不能直接控制内部iframe的内容,并且您需要在iframe的父级之间实现推送消息窗口通信,以便能够更改iframe src属性,有人会刷新父页面,iframe应该刷新到实际状态,而不是初始页面 第二个问题,根本就没有SEO。所以你的页面不会被搜索引擎机器人抓取。如果SEO对您的应用程序很重要 - 那么这不是一个选择。 在WebSockets中,如果使用会话,则使会话可用于普通PHP脚本和WebSockets逻辑非常重要,以便保持对其自身的一致数据访问。 PHP将使它变得不是一件容易的事。
您也可以考虑使用Long Pull技术,因为它允许打开一个AJAX请求然后获得响应,此请求可以持续一段时间,但最终会关闭,并且必须在客户端重新打开。
另一个选择是审查实际的应用程序架构,并考虑单页面应用程序。它还有利弊和专业 关于它的好处是UX会更高。响应时间以及您将加载更少的内容和数据 优点是它需要在javascript中在前端进行大量开发。您还可以使用两个主要路径来执行单页应用程序。一致和不一致。在第一种情况下,您需要确保您的后端将在刷新时服务静态html或仅导航到特定链接,就像您使用java脚本生成单页应用程序一样。然后它解决了SEO的问题。虽然不一致的方法,将只是纯粹的javascript(前端),并将有SEO的问题。
WebSockets通常与单页应用程序一起使用,例如Facebook Chat就是这样的好例子。您使用Gmail帐户时可以使用Google Talk。 它们并不适用于经常刷新的页面,因为握手过程比普通的HTTP请求要重一些。