2010-02-25 4 views
0

첫 번째 페이지로드에서 제대로 작동하는 ajax 긴 폴링 요청이 있습니다. 문제는 페이지가 다시로드되거나 새 페이지가 탐색 된 다음 이전 PHP 세션이 시간 초과 될 때까지 PHP 세션이 잠길 때 발생합니다.PHP 세션이 ajax long-polling로 잠겨 있습니다.

나는 다음과 같은 긴 폴링 코드 ...

while (time() - $time < 55) { 

    if ($userid != 0) { 

    updateUserSession(); 
    fetchMessages(); 
    getTyping(); 
    //getNotifications(); 

    if (!empty($response)) { 

    header("Content-Type: text/plain"); 
    echo json_encode($response); 
    exit; 
    } 

    } 

    sleep(2); 
} 

내가 맨 위에으로 session_start을 가지고 있습니다.

이제는 getTyping 함수가 세션을 설정해야 할 수 있으므로 긴 폴링 요청이 완료 될 때까지 session_write_close를 호출 할 수 없으므로 세션 데이터를 가져 와서 바로 닫을 수 없습니다.

누구나이 문제를 해결할 수 있습니까?

감사합니다.

답변

0

세션에 액세스해야 할 때마다 session_start()와 session_write_close()를 모두 호출 할 수 있습니까? 중복 헤더가 전송되는 것으로 끝날 수도 있지만 문제는 아닐 수도 있습니다. 당신은 내가조차 시도하지 않았다

+0

브라우저에 아무것도 전송 한 번으로 session_start()를 호출 할 수 없기 때문에

편집이 작동하지 않습니다, 나는 생각했다 번만 세션을 시작할 수 있다고? – Chris

관련 문제