Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Comet механизм в Tomcat6


Автор: Adept 22.4.2012, 13:55
Привет.
Разбираюсь с реализацией Comet в Tomcat 6.  
Написано, что жизненный цикл имеет вид: BEGIN -> READ -> READ -> READ -> ERROR/TIMEOUT
Не понятно, когда происходит событие EventType.READ
Попробовал пример, отсюда http://tomcat.apache.org/tomcat-6.0-doc/aio.html
У меня происходит вызов EventType.BEGIN, в котором я получаю параметр из request, формирую данные для ответа и отдаю их.
Мой жизненный цикл получается таким 
BEGIN -> ERROR

Мой неважный английский мешает точно понять , что там написано.
Подскажите пожалуйста, когда происходит вызов EventType.READ и нужно ли для каждого соединения, формировать отдельный поток, в котором будут формироваться данные и выдаваться ответ?
Вот пример клиента:
Код

<script>
    function fun1(old) {
        var json = null
        var url = 'http://localhost:8080/deploy/CometServlet.htm?num=0'        
        var request = new XMLHttpRequest();
        request.open("GET", url, true);
        request.setRequestHeader("Content-Type", "application/x-javascript;");
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                if (request.status == 200) {
                    if (request.responseText) {
                        json = request.responseText.evalJSON()
                        document.getElementById("div1").innerHTML = json["num"]
                    }
                }
                fun1(json["num"]);
            }
        };
        request.send(null);
    }
</script>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)