我正在尝试制作一个聊天脚本,但我不希望访问者的浏览器每 0.5 秒要求一条新消息。相反,我希望服务器立即发送新消息。
我想我可以向服务器发送一个请求,如果没有任何新消息,服务器会等到有新消息。这个等待时间不需要很长,大概2-3秒。
我尝试了PHP的sleep()
功能:
while(1)
{
$temp=$db->query("SELECT * FROM chat WHERE (id=36 OR id=12) AND clock>".$last_time);
if ($temp->rowCount()!=0) break;
sleep(1);
}
当其他访问者中断循环时,这种“等待中断”过程有效,但是当启动循环的访问者尝试发送消息时,他会永远等待。
我会以错误的方式解决这个问题吗?
编辑 *系统是 IIS 7 - PHP 版本 5.3.6