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

解决方案 »

  1.   

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

  2.   

    在 http 会话中,php 是作为 http 服务器的工作程序出现的。
    如果 php 被挂起,那么 http 服务器因没有得到返回,而不会终止本轮会话
    由于 http 协议是无状态协议,所以会话不能重入。(想插话,但不知道在哪里插)我猜测你打算做服务器推。
    由于这种应用与浏览器密切相关,所以目前 php 尚未支持(当然有些服务器端语言已开始支持了)
    可以见到的此类 php 应用,是需要用 socket 做服务器的。而你又不愿意那样做
      

  3.   


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

  4.   

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

  5.   


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