Como criptografar fluxos de soquete PHP não-bloqueantes?
Eu estou tentando usar a função stream_socket_client () do PHP de maneira não-bloqueante (assíncrona). A documentação no site do PHP indica que o sinalizador de opção STREAM_CLIENT_ASYNC_CONNECT deve permitir isso. No entanto, o código a seguir ...
$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.";
Gera o seguinte:
Total time taken: 0.76204109191895 secs.
Evidentemente, a função está bloqueando (também suportada pelo fato de que a omissão do sinalizador STREAM_CLIENT_ASYC_CONNECT não altera significativamente a saída do script "tempo total gasto".
Alguma idéia de por que isso pode estar acontecendo e como aplicar uma tentativa de conexão sem bloqueio?