php中利用fsockopen實現異步執行

1、Client.php文件經過fsockopen,將請求轉發到Server.phpphp

<?php
echo 'start' . time(), PHP_EOL;
$fsp = fsockopen('suiwnet.my', '80', $errno, $errstr, 30);
//這裏指定要請求的地址/CliTest/Server.php
$header = "GET /CliTest/Server.php HTTP/1.1\r\n";
$header .= "Host: suiwnet.my\r\n";
$header .= "Connection: Close\r\n\r\n";
fwrite($fsp, $header);
fclose($fsp);
echo 'end' . time(), PHP_EOL;


2、Server.php代碼以下瀏覽器

ignore_user_abort(TRUE);
$start = time();
sleep(3);
file_put_contents('D:/test.txt', $start . '-' . time());

在這裏,休眠了3秒中,模擬等待的效果,注意必須加上ignore_user_abort(true),避免客戶端關閉瀏覽器,中止執行ide

這種方式的實現方式,其實是發送另一個http請求,會增長httpd的負載ui

相關文章
相關標籤/搜索