现在的AJAX和其它的富客户端,都逐渐流行一种技术,就是HTTP的长连接
在PHP下的实现方法主要就是在一个循环中不断的检测一些信息,如果有可用信息立即退出循环,输出数据
如果没有的话,sleep一小段时间,再继续检测。现在有些疑问,例如,我通过AJAX向PHP发送一个请求,PHP在执行长连接的检测状态中,如果不小心一直检测不到可用数据而进入了死循环,当我强行关闭页面后,PHP会不会自己强行结束这个死循环的线程?
在PHP下的实现方法主要就是在一个循环中不断的检测一些信息,如果有可用信息立即退出循环,输出数据
如果没有的话,sleep一小段时间,再继续检测。现在有些疑问,例如,我通过AJAX向PHP发送一个请求,PHP在执行长连接的检测状态中,如果不小心一直检测不到可用数据而进入了死循环,当我强行关闭页面后,PHP会不会自己强行结束这个死循环的线程?
这种方式不同于你所说的AJAX不断轮循的方式。虽然都可以实现即时聊天,但是方法不一样,你所说的方法当然不会产生这种现象。在客户端settimeout的方法和长连接的方法,相当于是一个在客户端执行循环,另一个是在服务端执行循环,而长连接就是后者。所以我现在关心的就是后端陷入死循环的解决办法
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
看过一个聊天室代码,用的就是PHP后台代码,结合缓冲函数和SLEEP函数,实现即时通信。不需要AJAX前端长轮循的方式,楼主说的应该就是这种的吧!