首页 > 后端开发 > php教程 > 如何使用 Apache 和 JavaScript 实现基本的长轮询?

如何使用 Apache 和 JavaScript 实现基本的长轮询?

Linda Hamilton
发布: 2024-12-30 12:16:13
原创
900 人浏览过

How to Implement Basic Long Polling Using Apache and JavaScript?

实现基本的长轮询实现

长轮询是一种轮询技术,可以长时间保持连接打开,以便在服务器更新可用时实现即时响应。它的实现非常简单。

Apache 作为请求处理程序

要使用 Apache 处理请求,请创建一个 PHP 脚本,例如 msgsrv.php。这是一个简单的示例:

// Simulate data availability after a random delay
sleep(rand(2, 10));
echo("Hi! Here's a random number: " . rand(1, 10));
登录后复制

在 Apache 上运行此脚本。请注意,使用像 Apache 这样的大容量网络服务器可能会导致工作线程耗尽。

使用 JavaScript 脚本

在 JavaScript 中,您可以使用像 long_poller.htm 这样的脚本来发起轮询请求:

<script>
  function waitForMsg() {
    $.ajax({
      type: "GET",
      url: "msgsrv.php",

      async: true,
      cache: false,
      timeout: 50000,

      success: function(data) {
        // Append the response to a div
        addmsg("new", data);
        // Continue polling after 1 second
        setTimeout(waitForMsg, 1000);
      },
      error: function(..., errorThrown) {
        // Append error to div
        addmsg("error", textStatus + " (" + errorThrown + ")");
        // Retry after 15 seconds
        setTimeout(waitForMsg, 15000);
      }
    });
  }

  $(document).ready(function() {
    waitForMsg(); // Start the initial request
  });
</script>
登录后复制

该脚本不断向 msgsrv.php 发出请求,并在 div 中显示响应。它使用简单的速率限制器来防止过多的请求。

长轮询的好处

长轮询提供弹性和简单性。如果网络中断,客户端会自动重试。对于需要从服务器立即更新的应用程序来说,它是一个合适的选择,例如即时消息或聊天应用程序。

以上是如何使用 Apache 和 JavaScript 实现基本的长轮询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板