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