연결이 중단되었지만 connection_status() 함수가 올바르게 작동하지 않으면 세션에 값을 표시하려고합니다! 문 잠시없이PHP connection_status가 올바르게 작동하지 않습니다.
1 : 여기 아래 코드
session_start();
ignore_user_abort(true);
ob_end_clean();
echo "Testing connection handling";
while (1) {
if (connection_status() != CONNECTION_NORMAL){
$_SESSION['conn']='failed'; //worked at some time
break;
}
sleep(1);
echo "test";
flush();
}
나는이 코드를 테스트, 내가 연결을 수동으로 abord :
session_start();
ignore_user_abort(true);
ob_end_clean();
echo 'Testing'; //test if it has output to the browser
flush();
sleep(7);
echo "test";
flush();
if (connection_status() != CONNECTION_NORMAL){
$_SESSION['conn']='failed'; //never called
}
2 문 동안 WITH 코드 실행이 끝나기 전에 하지만 첫 번째 코드는 작동하지 않습니다. m excepted(do not mark assign 'failed' to the session) , and the second code works. Why the first dosen
t?!
@TommasYuan 여전히 응답을 받거나받지 못한다는 것을 이해하지 못합니다. 응답 (메시지)을 받으면 저장하고 안전하게 할 수 있습니다. 스크립트가 끝날 때까지 PHP는 계속 실행될 것이며 클라이언트와 제 시간에 끝나지 않을 것입니다. – Sammaye
첫 번째 코드로 테스트 할 때 수동으로 7 초 이내에 연결을 중단하고 첫 번째 'Testing'이 브라우저로 플러시되었지만 connection_status()가 여전히 0을 반환합니다 (NOMAIL_CONNECTION) –
@TommasYuan 실제로 이것이 PHP에서 시간 간격 때문에 연결을 중단 한 후에도 서버는 풀에서 연결을 제거하기 전에 약 5 분 정도 기다립니다. – Sammaye