求php阻塞函数

原创
2016-06-27 13:18:11 755浏览

有这样一个需求,a.php执行完成后不能结束,需要阻塞在那里。然后b.php和外部通信并且将外部来的数据传到阻塞中的a.php。
然后最好不要用socket的在网络上的阻塞。


回复讨论(解决方案)

建议别这么做,你在a.php用个参数进行识别,例如:
先访问a.php?type=0;
再访问b.php;
最后访问a.php?type=1;

你的需求是不可能实现的!


你的需求是不可能实现的!

求助版主。。为什么这个需求没法实现?

版主说的对啊,a既然阻塞了,又如何执行接收的动作呢?
a只能做监听的动作,而不是阻塞

版主说的对啊,a既然阻塞了,又如何执行接收的动作呢?
a只能做监听的动作,而不是阻塞

好吧。可能本来没有说太清楚。就是那种处于监听状态的阻塞么

在 http 会话中,php 是作为 http 服务器的工作程序出现的。
如果 php 被挂起,那么 http 服务器因没有得到返回,而不会终止本轮会话
由于 http 协议是无状态协议,所以会话不能重入。(想插话,但不知道在哪里插)

我猜测你打算做服务器推。
由于这种应用与浏览器密切相关,所以目前 php 尚未支持(当然有些服务器端语言已开始支持了)
可以见到的此类 php 应用,是需要用 socket 做服务器的。而你又不愿意那样做

在 http 会话中,php 是作为 http 服务器的工作程序出现的。
如果 php 被挂起,那么 http 服务器因没有得到返回,而不会终止本轮会话
由于 http 协议是无状态协议,所以会话不能重入。(想插话,但不知道在哪里插)

我猜测你打算做服务器推。
由于这种应用与浏览器密切相关,所以目前 php 尚未支持(当然有些服务器端语言已开始支持了)
可以……

那弱弱地问下版主。如果用pcntl或是popen来做进程间通信和阻塞不是也是可能做到的么?
只是pcntl在web上貌似有些不稳定。popen感觉又权限太高,有点危险。

那你是打算修改php内核还是修改apache的内核呢?
如果你具备这个能力,自然不在话下

那你是打算修改php内核还是修改apache的内核呢?
如果你具备这个能力,自然不在话下

貌似确实应该是也只有socket,多谢版主

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。