2012-07-26 3 views
0

내 mongodb가 항목을 추가 할 때 jQuery를 통해 PUSH을하고 싶습니다. jQuery 플러그인을 많이 보았지만 LONG POLLING이 아니라 PUSH이 있습니다. (당신이 두 개의 서로 다른 창을 열고 알 채팅을 시도합니다 경우)jQuery 혜성 푸시, 혜성 서버 없음

내가 이런 일이 방법을 알고 매우 날카로운입니다 here

이 사람은 this sample code을 썼다.

그는 prototype.js을 사용하고 있으며 백엔드 코드에서 특별한 것은 없음을 알았습니다. MySQL의 select 문은 MySQL 데이터베이스가 프로토 타입의 혜성 객체 응답을 변경할 때마다 발생합니다.

jQuery에서 비슷한 작업을 수행 할 수 있습니까? 나는 이것이 폴링이 아니라는 것을 믿지만 PUSH부터 prototype.js까지입니다.
아니면 프로토 타입이 소켓에 연결되어 있습니까? 죄송합니다. 소켓이 무엇인지 잘 모르겠습니다 만, 실제로 mongodb가 항목을 추가 할 때 jQuery를 통해 PUSH을 통해 수행하고 싶습니다.

+0

클라이언트가 변경 요청을 * push *하고 폴링하지 않는 것을보고 싶지 않습니다. – Alexander

+0

클라이언트가 요청하지 않습니다. PHP는 mysql 항목이있을 때 이에 응답합니다. 콘솔 창을 열고 입력 상자에 내용을 입력하면 xhr 요청이 표시되지만 PUSH 상태가됩니다. 방법? –

+0

클라이언트는 Comet 서버에 초기 연결을 요청합니다. 그런 다음 Comet 서버는 연결된 모든 클라이언트에 푸시 할 내용을 푸시합니다. Comet 용 앱은 자바 스크립트로 작성되지만, jQuery는 DOM 조작을위한 것이지, 사용자가하려는 것이 아니기 때문에 적절한 도구는 아니다. – Crontab

답변

-1

한번 해결 해보 죠. 필자가 프로토 타입 사용자가 아니기 때문에 필자는이 문서를 읽어 와서 이것을 얻었다.

JavaScript 콘솔에서 이러한 방식으로 XMLHttpRequestRedirected에 액세스 할 수 있습니다.

$ comet.ajax.transport.readyState 
1 

readyStateOPENED을 의미 1입니다.

테스트를 원하십니까? 이 재 연결을 피하는 XMLHttpRequestRedirected.onreadystatechanged를 재정의 (오픈 대기하고있어.)

$ comet.ajax.transport.onreadystatechange = function(){ 
    console.log("Don't reconnect"); 
}; 
$ comet.ajax.transport.abort(); 

당신은 Don't reconnect 메시지와 긴 폴링이 중지됩니다를 볼 수 있습니다.

이제 메시지를 보내보십시오. 아무것도 안 일어날거야.