当前位置: 首页 > 知识库问答 >
问题:

Websocket或长轮询(使用AJAX)使用PHP检测数据库中的更改

邵子平
2023-03-14

我花了几个小时在谷歌各地研究网络套接字和长时间轮询,他们的利弊等,但还没有找到一个明确的解决方案。

我读过的关于这个主题的文章比我研究过的任何文章都多,包括这些(仅举几例):

  1. Ajax/PHP-我应该使用一个长的运行脚本还是轮询?
  2. 使用jQuery和PHP进行长轮询
  3. 查询数据库中的更改-Ajax/jQuery
    null

总之,我的问题真的在标题里;如果我试图检测数据库记录的更改,使用websocket(socket.io)还是长轮询(jQuery和AJAX)更好?

如果答案是websockets,那么请包括一个基本的例子,因为这些真的让我困惑,甚至与谷歌上的所有文章...

此外,可能有其他的方式这样做是更好或更适合,如果是,请分享他们,我愿意接受任何建议!

无论如何,我希望我的问题不要太本地化,我期待听到你的观点和答案。请不要浪费时间帮助我编写PHP数据库代码或jQuery AJAX代码,除非其中有复杂的部分,因为我有能力自己编写这部分,而且堆栈中有许多其他人比我更需要您的帮助。我更感兴趣的是您的意见,和/或如果websockets是更好的解决方案,如何实现这一点:-)。

共有1个答案

宦正诚
2023-03-14

以下是我所见过的关于长轮询和WebSocket API的最佳比较:
http://www.WebSocket.org/quantum.html

正如上面的文章所述,WebSocket API远远优于长轮询(或任何其他伪双向通信),但缺点是浏览器的支持仍然不完全存在(即在IE10中终于开始支持WebSocket API)。

因此,如果您正在寻找全面的双向通信解决方案,请在可用时使用WebSocket API,而在不可用时则返回到Ajax长轮询或任何您喜欢的comet方法。

 类似资料:
  • 问题内容: 我想知道如何使用ajax push。我从各种Web文章中学到,可以通过使用一些程序(例如COMET,APE(AJAX PUSH ENGINE)等)来获得Ajax push。但是我想知道是否有更简单的使用方法以及使用哪种语言实现ajax推送。因为在我所看到的文章中。他们正在使用Java。我没有学过的:(所以我想知道是否有类似的东西:您服务器中的javascript,它为特定项目设置了一个

  • 问题内容: 我最近在StackOverflow上问了一个有关我的功能的问题,人们建议我使用Ajax Long Polling。我花了几天的时间研究该主题,并尝试编写基本的长轮询代码,但是这些代码都没有起作用,而且我什么也做不了。 这是我的基本功能: 有人能够告诉我如何将其转变为基本的长轮询功能,或者甚至直接指向我需要到达的路径。很感谢任何形式的帮助。谢谢! 问题答案: 通常(即,当不使用长时间轮询

  • 问题内容: 我们尝试在我们公司的ERP中实施基于长期轮询的通知服务。与Facebook通知类似。 使用的技术: 在每次循环迭代中,PHP 设置为60秒零1秒。 jQuery用于AJAX处理。 Apache作为Web服务器。 经过近一个月的编码,我们开始生产。部署后几分钟,我们不得不回滚所有内容。事实证明,我们的服务器(8个核心)无法处理20名员工的长时间请求,每个服务器都使用约5个浏览器标签。例如

  • 问题内容: 我经营一个网站,用户可以在该网站上通过浏览器互相聊天(想想Facebook聊天)。处理现场互动的最佳方法是什么?(现在,我每30秒进行一次民意调查以更新在线用户和新收到的消息,而另一次民意调查则每秒在聊天页面上进行一次以获取新消息。) 我考虑过的事情: HTML5 Web套接字:未使用此功能,因为它不适用于所有浏览器(仅适用于chrome)。 Flash Sockets:没有使用它,因

  • 我想使用Ajax更新数据,下面是示例代码。SweetAlert被移位,因为它已经更新了,但是它在数据库中没有生效,因此它给出了一个错误。 这是在单击submit按钮时提交表单的Ajax脚本。 这段代码用于php服务器端,用于将数据插入数据库。

  • 我想测量和比较长轮询和WebSocket之间的服务器性能。我用ratchet(PHP websockets)构建了一个简单的PHP应用程序,它只在控制台中输出数据(指南:http://socketo.me/docs/hello-world)。长轮询应用程序也是PHP,只生成随机数并将其记录在控制台中(本文:如何实现基本的“长轮询”?)。 有没有办法在不使用数据库的情况下对这些应用程序进行公平的比较