PHP冻结睡眠()

时间:2014-11-04 18:58:52

标签: javascript php xml xmlhttprequest

我一直在测试聊天脚本的长轮询。我设计它的工作原理如下:

  1. 客户端向服务器(php)发送请求
  2. 服务器获取请求,并启动循环(持续1分钟)
  3. 在循环的每次迭代中,服务器都会检查来自数据库的“新”消息
  4. 如果有新消息,则服务器将终止并显示新消息列表。 (我使用过die(string)函数
  5. 客户收到该回复并进行处理。
  6. 如果1分钟内没有任何新消息,则以“无消息”状态运行另一个die()函数
  7. 代码如下所示:

    <?php
        while($time<60)
        {
    
        if(any new messages) {
        die (new messages) 
        }
    
    
    
        sleep(1);
        $time++;
    
        }
    
    die(no new messages);
    

    这样做是在60秒内(当它无法找到任何新消息时),我的服务器似乎冻结。我无法打开新页面,其他用户也无法访问任何页面(使用xampp) 我该如何解决这个问题? 我知道这种方法可能不是很好,但我想知道问题,以及如何解决它,而不是建议如何使用其他方式(网络套接字等)完成它

0 个答案:

没有答案