如何在没有php循环的情况下实现服务器推送内容
我正在使用comet实现服务器推送内容到客户端浏览器。 当mysql获得insert时,应该会有更新,然后客户端会发生一些事情,所以我目前正在通过PHP执行以下操作:如何在没有php循环的情况下实现服务器推送内容,php,mysql,comet,Php,Mysql,Comet,我正在使用comet实现服务器推送内容到客户端浏览器。 当mysql获得insert时,应该会有更新,然后客户端会发生一些事情,所以我目前正在通过PHP执行以下操作: PHP while (check database if update is there) { usleep(10000); // do write json } 它实际上在工作,但发生在我身上的是我的托管(共享)资源耗尽,即使我只是同时测试5个客户端。 此时CPU负载为40%,导致帐户禁用 因此,请
PHP
while (check database if update is there)
{
usleep(10000);
// do write json
}
它实际上在工作,但发生在我身上的是我的托管(共享)资源耗尽,即使我只是同时测试5个客户端。
此时CPU负载为40%,导致帐户禁用
因此,请有人告诉我如何触发php只发送新的更新而不进行循环检查。我不知道您的Javascript看起来如何,但我认为您的做法是错误的。您真正想做的可能是每隔10秒从浏览器发送请求。请参阅。我不知道您的Javascript看起来如何,但我认为您的做法是错误的。您真正想做的可能是每隔10秒从浏览器发送请求。请参阅。此方法在睡眠时间内不会使用任何CPU:
set_time_limit(0);
while (check database if update is there) {
sleep(10);
// do write json
}
此方法在睡眠期间不会使用任何CPU:
set_time_limit(0);
while (check database if update is there) {
sleep(10);
// do write json
}
我认为你的问题在于你在这方面有一个小小的错误。参数应为: 微秒
暂停时间以微秒为单位。一微秒是一秒的百万分之一 第二 您的脚本当前暂停0.01秒,而不是10秒,我认为这不是您想要的
使用: 或:
我认为你的问题在于你在这方面有一个小小的错误。参数应为: 微秒
暂停时间以微秒为单位。一微秒是一秒的百万分之一 第二 您的脚本当前暂停0.01秒,而不是10秒,我认为这不是您想要的
使用: 或:
谢谢Matt S我会试试这个。谢谢Matt S我会试试这个。谢谢Yoshi,然后我会试试这个。谢谢Yoshi,然后我会试试这个。
sleep(10);