代码之家  ›  专栏  ›  技术社区  ›  Brad

Opera 10中的x-dom-event-stream仅用于第一个事件

  •  0
  • Brad  · 技术社区  · 15 年前

    我有一个python脚本(在cherrypy框架中),它发送事件:和data:text,如下所示 Opera blog post 对客户端浏览器进行描述。接收x-dom-event-stream内容的javascript几乎与它们在博客文章中显示的内容相同。但是,浏览器只显示发送的第一个事件。有人知道我错过了什么吗?

    我尝试了一些旧版本的歌剧,发现它可以在歌剧9.52中使用,但不能在任何新版本中使用。他们改变了什么?

    下面是python代码:

    class dumpData(object):
      def index(self):
        cherrypy.response.headers['Content-Type'] = "application/x-dom-event-stream"
    
        def yieldData():
          i = 0
          while 1:
            yield "Event: count\n"
            yield "data: "
            yield i
            yield "\n\n"
            i = i + 1
            time.sleep(3);
    
        return yieldData()
    
    index._cp_config = {'response.stream': True}
    index.exposed = True
    

    这里是javascript/html。请求/data/运行上面的python函数。

    <head>
      <script>
        onload = function() { 
          document.getElementById("count").addEventListener("cout", cout, false);
        }
        function count(e) {
          document.getElementById("stream").firstChild.nodeValue = e.data;
        }
      </script>
      <event-source id="count" src="/data/">
    </head>
    <body>
      <div id="stream"></div>
    </body>
    

    在firefox中打开direct/data/url会将流保存到一个文件中。所以我知道输出的格式是正确的,流完全可以工作。

    1 回复  |  直到 15 年前
        1
  •  2
  •   hallvors    15 年前

    这是一个错误。很抱歉:-/

    (记录:CORE-28592在Opera不幸关闭的bug追踪器中。)