如何在ratchet php上运行AD
我正在使用Ratchet php web socket创建一个web应用程序,我希望在这样的情况下使用它:当客户端通过如何在ratchet php上运行AD,php,multithreading,sockets,pthreads,ratchet,Php,Multithreading,Sockets,Pthreads,Ratchet,我正在使用Ratchet php web socket创建一个web应用程序,我希望在这样的情况下使用它:当客户端通过onOpen发送连接到套接字时,它将从数据库中检索一些数据,并将一些数据发送回客户端。问题是,当我有两个客户端连接到同一个web服务器时,onOpen事件直到第一个客户端完成执行(从db检索数据需要时间)才触发,这意味着它不是异步/并发的 我知道我可以使用pthread创建线程,但我无法将连接对象传递给线程,如中所述: 这是我的代码供您参考: public function
onOpen
发送连接到套接字时,它将从数据库中检索一些数据,并将一些数据发送回客户端。问题是,当我有两个客户端连接到同一个web服务器时,onOpen
事件直到第一个客户端完成执行(从db检索数据需要时间)才触发,这意味着它不是异步/并发的
我知道我可以使用pthread创建线程,但我无法将连接对象传递给线程,如中所述:
这是我的代码供您参考:
public function onOpen(ConnectionInterface $conn) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.mywebsite.com/example.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
$result = curl_exec($ch);
echo "finished executing";
}
你能提供一些代码吗?@Mu'menYassin你好,谢谢你的回复,我更新了我的问题。我假设你正在尝试从全局范围访问
$data123
。@Mu'menYassin不,对不起,我的意思是,如果我的页面很大,curl请求需要10秒的时间才能响应。问题是,当第二个客户端连接到套接字时,onOpen事件直到10秒后才会触发。在onOpen
中创建一个新线程,然后全局使用thread::全局(function(){//curl请求在这里…})代码>发送您的请求?