Sunday, October 05, 2008

Использование Comet в Ajax

Практическое использование Comet при Ajax запросах. Примеры относятся к Tomcat 6 и не требуют от клиентской части реализации Bayeux. Естественно, что это будет работать и на серверах приложений, использующих Tomcat 6 (WebSphere, например). Шаги следующие:

1. в файле server.xml меняется описание коннектора:

<Connector connectionTimeout="20000" port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

(реализация Comet использует Nio)

2. Серверная компонента должна теперь реализовывать новый интерфейс и вместо монолитного метода doGet (или doPost) выполнить реализацию обработчика событий:


public class CometServlet extends HttpServlet implements CometProcessor {

public void event(CometEvent event) throws IOException, ServletException {
if(event.getEventType() == EventType.BEGIN) {
// fill in code handling here
}
// and continue handing other events
}
}

Схожий механизм поддерживает и Jetty, но там API другой. Собственно, спецификация Servlet 3.0 как раз и должна представить общий API.

No comments: