2010-01-19 1 views
5

이 기능은 "서버 푸시"라고 불리우며, 구글 웨이브 또한이를 활용합니다.예를 들어 혜성 이해하기

누군가가이 개념을 코드 스니펫으로 설명 할 수 있습니까 웹 응용 프로그램에서 실제로 어떻게 작동합니까?

답변

2

일부 의사 자바 스크립트 :

<script> 
//open connection to the server, updateFunc is called every time server sends stuff 
//For example ticker price for Google (GOOG) 
var connection = CometLibrary.subscribe("http://server", "GOOG", updateFunc); 

//data is JSON-encoded 
function upudateFunc(data) { 
    var elem = $("#GOOG .last"); 
    if (elem.value < data.last) 
    elem.css("color", "green"); 
    else (elem.value > data.last) 
    elem.css("color", "red"); 
    elem.value = data.last; 
} 

</script> 
<span id="GOOG">GOOG: <span class="last"></span></span> 

그래서 위의 코드는 지속적으로 서버에 연결 및 콜백 함수가 서버에 업데이트가 될 때마다 호출되는을 설정합니다. 위 또는 아래로 이동하면 가격이 변경되고 변경이없는 경우 가격은 이전과 동일하게 유지됩니다.

다른 방법으로는 AJAX 요청을 수초마다 생성하는 간격 타이머가 있어야 연결을 설정하고 끊는 오버 헤드가 있습니다.

+0

'CometLibrary'는 어떻게 구현 되었나요? 요청 연결이 아직 끝나지 않았다면 클라이언트 쪽에서 어떻게 반응합니까? – user198729

+0

은 다음과 같은 게임이 있습니다 : http://goldfishserver.com/ 다른 브라우저에서 메시지를 입력하면 firefox에서 업데이트되는 것을 볼 수 있습니다. 또한 새로운 연결이 동일한 연결로 들어오는 것을 볼 수 있습니다. 연결이 5 초마다 재설정된다는 사실은 연결 오류 감지에 대한 것입니다. –

+0

그것은 어떻게 구현 되었습니까? 나를 믿으십시오. 당신은 알고 싶지 않습니다. 복잡한 까다로운 해커가 많이 있습니다. –