使用php的socket實現非同步請求。一般的使用以下代碼都可以實現
$fp = stream_socket_client($host.':'.$part, $errno, $errstr, 30);if ($fp) { $out = "GET /".$request." HTTP/1.1\r\n"; $out .= "Host: ".$host."\r\n";; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); fclose($fp);}
好幾台伺服器都是相同的環境,但是有台伺服器,必須要在fwrite後面加上以下代碼,相應的請求才可以執行。
while (!feof($fp)) { echo fgets($fp, 1024);}
在本地測試(apache)是沒有問題的,我也懷疑過nginx的問題,但是有其他伺服器使用同樣的配置確實沒有問題,有沒有遇到過這樣的問題的同學,求指教!
回複內容:
使用php的socket實現非同步請求。一般的使用以下代碼都可以實現
$fp = stream_socket_client($host.':'.$part, $errno, $errstr, 30);if ($fp) { $out = "GET /".$request." HTTP/1.1\r\n"; $out .= "Host: ".$host."\r\n";; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); fclose($fp);}
好幾台伺服器都是相同的環境,但是有台伺服器,必須要在fwrite後面加上以下代碼,相應的請求才可以執行。
while (!feof($fp)) { echo fgets($fp, 1024);}
在本地測試(apache)是沒有問題的,我也懷疑過nginx的問題,但是有其他伺服器使用同樣的配置確實沒有問題,有沒有遇到過這樣的問題的同學,求指教!
好像是緩衝區的問題, php的output_buffering。