Что-то я не врубаюсь, что даёт такой интерфейс, как org.apache.catalina.CometProcessor?
Вот пример:
http://tomcat.apache.org/tomcat-6.0-doc/aio.html
Не понимаю, что делает ветка else if (event.getEventType() == CometEvent.EventType.READ)? Просто печатает количество прочитанных откуда-то байт? Откуда? Как их ей послать?
И не понимаю, кто и когда вызывает метод send()?
И вообще, не понимаю особого смысла в long polling. У нас объект XMLHttpRequest не позволяет прочесть частично переданные данные. Поэтому, клиент по-любому должен будет постоянно отсылать запросы серверу, а по получению ответа или по таймауту, посылать их снова. Какая тогда разница между long и short polling?
Почему нельзя просто написать обычный HttpServlet, у которого есть метод doGet(), который долго ждёт данных и отвечает только, когда они получены?
Прошу ногами не пинать.