创建一个http服务,在浏览器访问很快就有数据返回
在代码里用 file_get_contents('http://127.0.0.1:8092');访问,没有数据返回
$worker = new Worker('http://0.0.0.0:8092');
$worker->onMessage = function(TcpConnection $connection, Request $request)
{
$connection->send("hello");
};
Worker::runAll();
如果是是只开一个进程(例如windows系统下)自己file_get_contents自己就访问不到。
linux下一个进程
我设置了2个进程,用file_get_contents还是访问不到
只开一个进程访问不到
我设置了2个进程,用file_get_contents还是访问不到
多设置几个呗,你设置两个还是还大概率分配到同一个进程上
------------------------------------------------------------- WORKERS -------------------------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:3001 1 [OK]
Press Ctrl+C to stop. Start success.
^ "ad"
^ 123
能看到收到的数据
$worker = new Worker('http://0.0.0.0:3001');
$worker->count = 1;
$worker->onMessage = function(TcpConnection $connection, Request $request)
{
dump($request->get('abc'));
$connection->send("hello");
dump(123);
};
Worker::runAll();
请求端代码:
try {
dump(date('H:i:s'));
$rlt = file_get_contents('http://127.0.0.1:3001?abc=ad');
dump('请求结束');
dump($rlt);
}catch (\Exception $e){
dump(date('H:i:s'));
}
结果:
^ "10:10:14"
^ "请求结束"
^ "hello"
^ "10:12:14"
过了2分钟才返回的数据
改用下面的代码可以搞定,马上返回
$url = 'http://127.0.0.1:3001?abc=ad';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$rlt = curl_exec($ch);
curl_close($ch);