2013-03-03 2 views
2

all입니다. 나는 작은 채팅방있는 사이트가 있고, 내 사용자는 점점 내 대역폭을 먹고, 어떤 기적을 검색 한 후, 나는 마침내, 내가 이해에서 섹시한 무언가 :)라고 롱 폴링에 난처한 상황에 빠진긴 폴링 스크립트의 모양은 무엇이며 구현 방법은

서버/클라이언트가 더 긴 시간 동안 UN-Interapted 사이에 연결을 유지해야하는 간단한 방법이며 을 수행하면 계속 요청이 90 % 줄어 듭니다.

이제 내가 잘못 될 수 있습니다. 하지만이 "단순한"것은 어떻게 만들어 졌습니까? 아래에서 Jquery를 사용하여 자습서에서 만든 채팅 스크립트를 볼 수 있습니다. 그것은 잘 작동하지만 longpolling 기능이 없습니다.

여기에 PHPJavascript 코드가 있습니다 (길이가 너무 길기 때문에 여기에 붙여 넣을 수 없습니다).

자, 문제는 이미 내 내장 코드에 긴 폴 스크립트를 삽입하는 것입니다.

답변

1

내가 여기에 코드를 읽을 수 있지만하지 않은이 작은 예입니다 : 서버 측에

function waitForNotification() { 
    $.ajax(url, { 
     timeout: 60000, 
     success: function(e) { 
      //do want you want with e 
      //and call function again: 
      waitForNotification(); 
     } 
    }); 
} 

, 당신은 경우에만 응답을 요청 (url에) 모든 아약스를 수집하고 해제 할 필요가 새 메시지가 게시되었습니다. 분명히 서버 측 방법은 구현하기가 더 어렵고 서버 아키텍처에 완전히 의존합니다 (COMET 구현을 사용할 수 있음).

사용자가 직접 구현하는 경우 클라이언트가 success 이벤트를 처리하는 동안 새 메시지 m이 게시 될 수 있으며 (m 알림이 누락 됨)주의해야합니다.

원하는대로 아약스 요청을 구성하십시오 (다른 이벤트 처리). 흥미

: