【问题标题】:HTML5 Server Sent Events not working in TideSDKHTML5 服务器发送事件在 TideSDK 中不起作用
【发布时间】:2012-11-18 23:28:33
【问题描述】:

我正在尝试使用 TideSDK 1.3.1-beta 在我的桌面应用程序中使用服务器发送事件。通过基于 webkit 的浏览器查看的代码在 localhost 上运行完美,但是通过 TideSDK 运行程序时,什么也没有发生。

我使用的 Javascript 是这样的:

<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 运行时,什么都没有发生。 我解决这个问题非常重要。如果有人可以提供任何见解,请告诉我。

PS:我注意到一些奇怪的事情:如果我在 EventSource 中使用“app”作为协议,例如EventSource("app://demo_sse.php");,程序会在控制台输出有关预处理demo_sse.php 文件的行之前立即崩溃。

【问题讨论】:

  • 这可能是一个重要的信息。奇怪的是,我在远程服务器上使用了一个 php 文件,例如 var source=new EventSource("http://somedomainame.com/demo_sse.php"); 在 TideSDK 中工作得非常好。我想 TideSDK 方面的 php 存在一些问题。也许它不喜欢内容类型标题?我该如何解决这个问题?

标签: tidesdk


【解决方案1】:
<?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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2020-11-04
    • 2013-09-08
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多