2012-11-18 3 views
0

TideSDK 1.3.1-beta를 사용하여 데스크탑 응용 프로그램에서 서버 보낸 이벤트를 사용하려고합니다. 이 코드는 웹킷 기반 브라우저를 통해 보이는 localhost에서 완벽하게 작동하지만 TideSDK를 통해 프로그램을 실행할 때 전혀 아무런 변화가 없습니다.TideSDK에서 HTML5 Server 보낸 이벤트가 작동하지 않습니다.

<script> 
var source=new EventSource("demo_sse.php"); 
source.onmessage=function(event) 
{ 
document.getElementById("result").innerHTML+=event.data + "<br>"; 
alert(event.data); 
} 
</script> 

그리고 demo_sse.php 페이지는 다음과 같습니다 : 내가 사용

자바 스크립트는 다음과 같은 것입니다

<?php 
header('Content-Type: text/event-stream'); 
header('Cache-Control: no-cache'); 

$time = date('r'); 
echo "data: The server time is: {$time}\n\n"; 
flush(); 
?> 

난 이후 단지 바보 같은 실수가 아니라는 것을 알고, 말했듯이 브라우저에서는 완벽하게 작동하지만 TideSDK를 실행하면 전혀 문제가 발생하지 않습니다. 이 문제를 해결하는 것이 매우 중요합니다. 아무도 통찰력을 제공 할 수 없다면 알려주십시오.

추신 : 내가 이상한 것을 알았습니다. EventSource("app://demo_sse.php");과 같이 EventSource의 프로토콜로 "app"를 사용하면 콘솔에서 콘솔이 즉시 demo_sse.php 파일을 처리하는 줄을 출력하기 전에 충돌합니다.

+0

이것은 중요한 정보 일 수 있습니다. 이상하게도'var source = new EventSource ("http://somedomainame.com/demo_sse.php");와 같은 원격 서버에서 PHP 파일을 사용하면 TideSDK에서 완벽하게 작동합니다. TideSDK의 일에 PHP 문제가 있다고 생각합니다. 콘텐츠 유형 헤더가 마음에 들지 않을 수도 있습니다. 이 문제를 어떻게 해결할 수 있습니까? –

답변

0
<?php 

header('Content-Type: text/event-stream'); 

header('Cache-Control: no-cache'); 

$time = date('r'); 

echo "data: The server time is: {$time}\n\n"; 

flush(); 

?> 
<script> 

var source=new EventSource("demo_sse.php"); 

source.onmessage=function(event) 

{ 

document.getElementById("result").innerHTML+=event.data + "<br>"; 


alert(event.data); 

} 

</script>