¿Cómo cifrar flujos de socket PHP no bloqueantes?

Estoy intentando usar la función stream_socket_client () de PHP de forma no bloqueante (asíncrona). La documentación en el sitio web de PHP indica que el indicador de opción STREAM_CLIENT_ASYNC_CONNECT debería habilitar esto. Sin embargo, el siguiente código ...

$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.";

Salidas de lo siguiente:

Total time taken: 0.76204109191895 secs.

Evidentemente, la función está bloqueando (también es compatible con el hecho de que la omisión del indicador STREAM_CLIENT_ASYC_CONNECT no cambia significativamente la salida del script de "tiempo total tomado").

¿Alguna idea sobre por qué puede estar ocurriendo esto y cómo aplicar un intento de conexión no bloqueante?

Respuestas a la pregunta(1)

Su respuesta a la pregunta