Hello, i have a problem to implement a Comet Server, i use tomcat 7 and i try to keep many connections open and for each client connected return a string each time than other client press "go()" but the return from the server only happend when the time out expired, and execute the event.close(); and close my connection....
how can i send data to the clients without close the connection or call event.close() ??? i hope you undertend me thanks Agustin pd: my source code... **SERVER @WebServlet(urlPatterns = {"/Prueba"}) public class Prueba extends HttpServlet implements CometProcessor { private static final long serialVersionUID = 1L; private static final Integer TIMEOUT = 20 * 1000; private List<HttpServletResponse> responseList = new ArrayList<HttpServletResponse>(); /** * @see HttpServlet#HttpServlet() */ public Prueba() { super(); } public synchronized void event(final CometEvent event) throws IOException, ServletException { HttpServletRequest request = event.getHttpServletRequest(); HttpServletResponse response = event.getHttpServletResponse(); event.setTimeout(TIMEOUT); if (event.getEventType() == CometEvent.EventType.BEGIN) { if(!responseList.contains(response)) { responseList.add(response); log( "se agrego la el req de session: " + request.getSession(true).getId()); } for (HttpServletResponse res : responseList) { ServletOutputStream out = res.getOutputStream(); //PrintWriter out = res.getWriter(); log("Begin for session: " + request.getSession(true).getId()); out.print("<p>session: " + request.getSession(true).getId() + " cant logueados: " + responseList.size() + " </p>"); out.flush(); log("Sended message for session: " + request.getSession(true); } } else if (event.getEventType() == CometEvent.EventType.ERROR) { log("Error for session: " + request.getSession(true).getId()); event.close(); } else if (event.getEventType() == CometEvent.EventType.END) { log("End for session: " + request.getSession(true).getId()); event.close(); } else if (event.getEventType() == CometEvent.EventType.READ) { throw new UnsupportedOperationException("This servlet does not accept data"); } } **CLIENT <javascript> var url = "Prueba?msg=hola"; var request = new XMLHttpRequest(); request.onreadystatechange = orsc; function go(){ request.open("GET", url, true); request.setRequestHeader("Content-Type","multipart/x-mixed-replace"); request.send(null); } function orsc() { if (request.readyState == 4) { document.getElementById("forecasts").innerHTML += "ready 4"; if (request.status == 200){ document.getElementById("forecasts").innerHTML += "ready 200"; if (request.responseText) { document.getElementById("forecasts").innerHTML += request.responseText; } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org