x-dom-event-stream в Opera 10 работает только с первым событием

У меня есть скрипт python (в платформе CherryPy), который отправляет текст Event: и data: в виде сообщение в блоге Opera описывает для клиентского браузера. JavaScript, который получает содержимое x-dom-event-stream, почти идентичен тому, что они показывают в сообщении блога. Однако браузер отображает только первое отправленное событие. Кто-нибудь знает, что мне не хватает?

Я попробовал несколько старых версий Opera и обнаружил, что они работают в Opera 9.52, но не в более новых версиях. Что они изменили?

Вот код питона:

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>

Открытие прямого URL-адреса /data/ в Firefox сохраняет поток в файл. Поэтому я знаю, что вывод в правильном формате и что поток вообще работает.


person Brad    schedule 26.05.2010    source источник


Ответы (1)


Это ошибка. Извини за это :-/

(Для протокола: CORE-28592 в системе отслеживания ошибок Opera, к сожалению, закрытой.)

person hallvors    schedule 28.05.2010