长链接

作者: 孙燕超 | 来源:发表于2017-03-16 19:55 被阅读11次

每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过php长连接的方式,来达到运行目的。

一般php环境为apache+php+linux,但是由于apache对php连接都有时间限制,一般超过这个连接时间apache服务器会自动断掉连接。

方法一

这种情况下比较简单方便的方式就是在php页面中设置set_time_limit(0)(当然也可以在php.ini配置文件中设置,但是这样对整个环境产生影响,毕竟我们并不想对所有连接都可以长时间连接,影响服务性能)

每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长,然后使用 flush() 和 ob_flush() 来清除服务器缓冲区,随时输出脚本的返回值。

如下例子:

view plain

header("Content-Type: text/plain");

set_time_limit(0);

while( true )

{

// 持续执行的脚本

flush();

ob_flush();

sleep(5);

}

?>

  当我们执行后,每隔5秒钟,我们会执行一次,通过这一方法,我们可以完成很多功能,例如后台监控程序,定时执行功能,日志分析,数据整理等耗时的操作。

下面再看一个简单例子,官方文档中例子

view plain

view plain

header('Content-type: text/plain');

echo date("H:m:s"), "/n";

set_time_limit(30);

for ($i = 0; $i < 1000; $i++)

{

echo date("H:m:s"),"/n";

for ($r = 0; $r < 100000; $r++){

$X.=  tan(M_LNPI+log(ceil(  date("s")*M_PI*M_LNPI+100)));

}

ob_flush();

flush();

}

echo "work! $x";

?>  

相关文章

  • 长链接

    每次我们访问PHP脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行...

  • 长链接

    tlv帧头设置避免冲突: 参考:https://blog.csdn.net/yxp200401/article/...

  • 长链接学习链接

    php之websocket服务使用(弹幕实现) https://blog.csdn.net/miao091...

  • 长链接转短链接

    新浪短网址接口的稳定性和跳转速度还是很给力的,现给出其API说明。 该接口支持两种返回格式:xml和json 对应...

  • WebSocket(长链接)

    一、WebSocket 定义 WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输。 但它...

  • WebSocket 长链接

    最近公司要做一款内部使用的工具类app,方便销售部门打电话(其实就是在后台有好多用户数据,之前销售部门同事拨打电话...

  • tcp长链接

    面试官:说说tcp怎么设置成长链接? 我:创建的时候加上keepalive标志。 面试官:嗯,说说tcp是如何保持...

  • 长链接测试

    https://blog.csdn.net/wangshuminjava/article/details/8043...

  • 面试-长链接与短链接

    前言 长链接和短链接又分别称为持续链接和非持续链接 Web页面上通常有很多对象。有些对象较小,比如HTML文本或图...

  • http长链接和短链接

    HTTP的长链接和短链接实际上是TCP的长连接和短链接。首先我们先介绍一下TCP/IP协议组四层模型。其中包括以下...

网友评论

    本文标题:长链接

    本文链接:https://www.haomeiwen.com/subject/gctsnttx.html