+ -
当前位置:首页 → 问答吧 → 求助:检测PHP连接状态 必须要发送数据吗?

求助:检测PHP连接状态 必须要发送数据吗?

时间:2011-08-26

来源:互联网

我有个应用,客户提交计算后服务器开始计算,等待1分钟左右,返回计算结果,中途客户端退出我这需要退出计算

问题1:如何在不发送字节的前提下检测状态,例如下面是发送字节检测连接状态的代码
<?
function sd()
{
if(connection_status()!=0)
file_put_contents("D:\\AppServ\\www\\提前退出.txt", "");
}
register_shutdown_function("sd");

for($i=0; $i<10; $i++)
{
echo "1";
flush();
sleep(1);
}
echo "END";
?>
这代码在客户端关闭请求时会触发建立txt文件,可是我想把echo "1"去掉,或者发送个0字节的东西,我试了多种方法都不行



问题2:proc_open打开的程序如何在shutdown回调中强行杀死

作者: anders0821   发布时间: 2011-08-26

1、php 只在输出时检查连接状态。你可以只输出空格
2、如果没用预置通讯接口,则不可能做到

作者: xuzuning   发布时间: 2011-08-26

proc_get_status获取进程id再kill掉可以么?

作者: jerryxiaosa   发布时间: 2011-08-26

返回的是PNG图像倒是可以可以硬塞个12字节的块,也就是xuzuning说的空格了,这样是可以的,最然看起来比较别扭


可是运算调用了proc_open这程序是批处理方式的,阻塞的时候怎么发送空格?有类似时钟的东西吗?还有检测到shutdown了怎么杀进程啊?

作者: anders0821   发布时间: 2011-08-26

我在跑register_tick_function declare的范例全都是内部错误,连提示都没有,真的这么难吗?

作者: anders0821   发布时间: 2011-08-26

终于找到了这个!!!!

放弃的特性
PHP V5.3 开始正式放弃一些较旧的函数,将来版本的 PHP 中将不再提供它们。当使用这些函数时,会遇到 E_DEPRECATED 错误。以下函数在 PHP V5.3 中被遗弃:
tick(declare(ticks=N) 和 register_tick_function()),之前用于在 declare() 块中当解析器每执行 n 条语句时就进行一个函数调用。它们将被废除,因为它们的函数中有很多的中断,而且该特性不大常用

作者: anders0821   发布时间: 2011-08-26