Heim  >  Artikel  >  Backend-Entwicklung  >  求php阻塞函数

求php阻塞函数

WBOY
WBOYOriginal
2016-06-27 13:18:11994Durchsuche

有这样一个需求,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,多谢版主

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn