2012-09-24 1 views
0

자바 스크립트에서 EventSource를 사용하려고합니다. 그러나 내가 그들을 사용하자마자 나는 약간의 문제가있다. 첫째, 페이지를 다시로드 할 때 EventSource가 다시 연결할 수 없습니다. 둘째, XmlHttpRequests가 제대로 작동하지 않습니다. 아래 코드에서 event_source 관련 코드에 주석을 달면 xml 요청이 올바르게 작동합니다. 이벤트 원본을 만들고 수신기를 추가하면 xml 요청이 성공하지 못합니다.Javascript PHP 서버와 상호 작용하는 xmlhttprequest와 동시 EventSource

envent_source = new EventSource('event-source.php'); 
envent_source.addEventListener('update', function(event) { 
    console.log("update event"); 
}, false); 

var request = new XMLHttpRequest(); 
request.onreadystatechange = function() { 
    if (this.readyState == this.DONE) { 
    if (this.status == 200) 
     console.log("received"); 
    } 
} 
request.open("GET", "document.xml"); 
request.send(); 

내가 무엇을 놓쳤습니까? EventSource는주의해서 사용해야합니까?

+0

위의 코드에는 아무런 문제가 없습니다. 귀하의 HTTP 서버가 document.xml 요청에 응답하지 않는 것 같습니다. 서버가 event-source.php 및 document.xml에 대한 GET 요청을 별도로 처리하는지 확인하십시오. – vinayr

+0

어떻게 그들을 별도로 처리 할 수 ​​없습니까? –

+0

다른 주제에서이 마지막 질문에 대한 답을 찾았습니다 [link] (http://stackoverflow.com/questions/3506574/how-do-i-configure-apache2-to-allow-multiple-simultaneous-connections-from- same) : php 세션은 같은 클라이언트로부터의 요청 스크립트의 동시 제거를 방지합니다. 고맙습니다. –

답변

0

vinyar으로 지적했듯이 문제는 클라이언트 측이 아니라 서버 측입니다. 필자의 경우 서버는 동일한 클라이언트의 요청을 상호 배타적으로 실행하는 PHP 세션을 사용합니다. 따라서 GET 요청은 이벤트 소스 스크립트가 종료 될 때까지 대기 상태가됩니다.

추가 정보 : Simultaneous Requests to PHP Script

관련 문제