2010-04-01 40 views
8

HTML5草案包含一个名为EventSource的API,通过仅使用一个服务器调用通过javascript来传输数据(通知)。在javascript中使用“x-dom-event-stream”流?

寻找它,我发现了个例上的JavaScript部分Opera Labs

document.getElementsByTagName("event-source")[0] 
     .addEventListener("server-time", eventHandler, false); 

function eventHandler(event) 
{ 
    // Alert time sent by the server 
    alert(event.data); 
} 

和服务器端部分:

<?php 
header("Content-Type: application/x-dom-event-stream"); 
while(true) { 
    echo "Event: server-time\n"; 
    $time = time(); 
    echo "data: $time\n"; 
    echo "\n"; 
    flush(); 
    sleep(3); 
} 
?> 

但截至今日,似乎只有Opera已经实施该API,既没有谷歌浏览器或Safari有一个工作版本(我在这里错了吗?)

所以我的问题是,是否有任何其他方式的JavaScript,也许更复杂,使用这一个流来获取数据?编辑:我现在看彗星的东西,但我不知道如何重用:) 编辑2:Apparentry,“x-dom事件流”现在已被重命名为“文本/事件流” 编辑3:得到理解的方式与此recent article从javanet

回答

0

那么,谷歌真的是我的朋友,经过长时间的搜寻之后,我发现这个脚本埃里克森实验室

多了吧(?!)

https://labs.ericsson.com/apis/eventsource/

来自他们的页面:

EventSource启用程序允许您使用即将发布的 事件源API在任何当前的Web浏览器。只需 在您的 页面中包含启用码库,并且您可以使用该API。 当用户代理自己实施事件 源API时,您的 应用程序立即和 透明地开始使用本地 实现。

但是这种解决方案需要从爱立信API密钥,并且不能用于商业用途,如果你有更好的办法,是不是对我最好的解决办法:(

所以..

0

看一看的Kaazing Open Gateway,我相信它的工作原理类似,它透明地切换到如它可使用本机实现爱立信的API。我认为它可提供的EventSource和WebSockets的。

+0

这是一个Java服务器,我正在寻找的JavaScript客户端。 但我会看看他们的XMPP JavaScript客户端。 – rnaud 2010-04-06 06:56:36