2009-12-02 5 views
0

누군가가 메시지를 보낼 때마다 글로벌 파일이 잠겨서 쓰여지는 채팅 프로그램이 있다고 가정 해 보겠습니다. 수신 클라이언트는이 구조를 사용하여 새로 업데이트 된 파일을 반환 할 기다리고 보류중인 XMLHTTP 요청이 있습니다긴 폴링 - 새 데이터가있는 시점을 확인하는 방법은 무엇입니까?

while (!hasNewdata()) 
{ sleep 3; } 
print "$thenewdata"; 
sub hasNewData() 
{ 
    # determine if global file has been appended to. 
} 

는 다음 폴링 요청에서 서버의 뒤쪽으로 클라이언트에 파일 크기를 보내고 것인가를가 수 좋은 방법입니다. 이제 파일 크기가 클라이언트에 다시 전송 된 것과 다른지 여부를 확인할 수 있으므로 새 데이터가 있음을 알 수 있습니다. 또는 파일 오프셋을 앞뒤로 보내는 것이 더 나은 방법이 될 수 있으므로 파일에서 새 데이터를 확인할 위치를 알고 있습니까? 아니면 완전히 다른 방법, 글로벌 '채팅'파일을 사용하는 것 이외의 다른?

은 '가능한 새로운 데이터'

답변

5

수정 한 날짜를 사용할 수를 결정하는 일반적인 방법은 무엇이다.

$last_modified = filemtime("thisfile.php"); 
+0

데이터가 변경되는 동안 파일 크기가 동일하게 유지되는 것이 가능한 경우 더 나은 방법 일 수 있습니다. –

0

파일 크기가 그렇게 나쁜 것은 아닙니다.

브라우저는 요청에 "if-modified-since"헤더를 이미 태그 지정하고있을 수 있습니다.

관련 문제