Ecco alcuni esempi di codice:Qual è il modo canonico per inserire un timeout di lettura su uno streaming in PHP?
<?php
$fp = fsockopen($host, $port, $errno, $errstr, $connectTimeout);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
echo "connected\n";
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
Ho visto stream_set_timeout($fp, 5);
e
socket_set_option($fp, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0));
, ma la lettura mai timeout.
Ho visto parecchi avvertimenti nella documentazione di PHP per stream_set_timeout()
:
Questa funzione non funziona con le operazioni avanzate come stream_socket_recvfrom(), l'uso stream_select() con il parametro di timeout, invece.
Preferisco non utilizzare select()
o un ciclo. Qual è il modo canonico per avere un blocco letto con timeout?
Grazie. Come ho detto nella domanda sto usando 'fsockopen' ma' stream_set_timeout ($ fp, 5); 'non funziona. – Andy