生成套接字服务器,返回端口,并继续运行


Spawn socket server, return port, and continue running

我希望有一个web应用程序在后台产生一个套接字服务器线程。每个PHP会话都有自己的线程,可以有任意数量的线程。

我使用0端口绑定套接字,因此它选择一个随机打开的端口。我的套接字服务器正确启动,并进入它的监听循环没有问题。然而,我遇到的问题是,使用shell_exec()启动线程的PHP脚本需要从线程获得响应,指示必须使用哪个端口进行通信。问题是,如果我启动线程并等待响应,客户端脚本将坐下来等待服务器线程完成,而不是继续通过套接字与它通信。

是否有一种方法,PHP,当从CLI或shell_exec()运行时,说,"好,这是我的最后一个输出,继续前进。"

我的结构大致如下:

Server.php

Start socket listener
Output chosen port
Do { Application Loop }

Client.php

Start Session
If !Session['port'] {
    Start Server.php, receive Port //This is where it waits forever
}
Communicate with server thread via Port

我希望这是清楚的。


可以使用PHP_THREAD:)
此外,你可以看看我的Github项目,它包括套接字和线程的例子,我认为它可以帮助你:ANYEM_THREAD_TEST