Jak szyfrować nie blokujące strumienie gniazd PHP?

Próbuję użyć funkcji stream_socket_client () PHP w sposób nieblokujący (asynchroniczny). Dokumentacja na stronie internetowej PHP wskazuje, że flaga opcji STREAM_CLIENT_ASYNC_CONNECT powinna to umożliwić. Jednak następujący kod ...

$start_time = microtime(true);
$sockets[$i] = stream_socket_client('ssl://74.125.47.109:993', $errint, $errstr, 1, STREAM_CLIENT_ASYNC_CONNECT);
$end_time = microtime(true);
echo "Total time taken: " . ($end_time-$start_time) . " secs.";

Wyświetla następujące informacje:

Total time taken: 0.76204109191895 secs.

Najwyraźniej funkcja ta jest blokowana (również wspierana przez fakt, że pominięcie flagi STREAM_CLIENT_ASYC_CONNECT nie zmienia w znaczący sposób wyniku skryptu „całkowity czas wykonania”.

Wszelkie pomysły na to, dlaczego tak się dzieje, i jak wymusić próbę nawiązania połączenia bez blokowania?

questionAnswers(1)

yourAnswerToTheQuestion