긴 폴링 - 새로운 데이터가있을 때 결정하는 방법은 무엇입니까?
-
11-09-2019 - |
문제
누군가가 메시지를 보낼 때마다 GlobalFile이 잠겨 있고 작성되는 채팅 프로그램이 있다고 가정 해 봅시다. 수신 클라이언트에는이 구성을 사용하여 새로 업데이트 된 파일로 반환하기 위해 대기중인 XMLHTTP 요청이 있습니다.
while (!hasNewdata())
{ sleep 3; }
print "$thenewdata";
sub hasNewData()
{
# determine if global file has been appended to.
}
파일 크기를 클라이언트로 보내고 다음 설문 조사 요청에서 서버로 돌아가는 것은 파일 크기가 이미 클라이언트로 전송 된 것과 다른지 확인할 수 있으므로이를 수행하는 좋은 방법입니다. 새로운 데이터가 있다는 것을 알고 있습니다. 아니면 파일 오프셋을 앞뒤로 전송하는 것이 더 나은 접근 방식이 될 것이므로 파일의 새 데이터를 확인할 위치를 알 수 있습니까? 아니면 다른 방법, 글로벌 '채팅'파일을 사용하는 것 외에 다른 방법은 무엇입니까?
'새로운 데이터 사용 가능'을 결정하는 일반적인 방법은 무엇입니까?
해결책
수정 된 날짜를 사용할 수 있습니다.
$last_modified = filemtime("thisfile.php");
다른 팁
파일 크기는 그렇게 나쁜 방법이 아닙니다.
브라우저는 이미 "if-modified-since"헤더를 요청하여 이미 태그를 지정할 수 있습니다.
제휴하지 않습니다 StackOverflow