Bom dia estou com uma servlet que executa um loop infinito para mostrar novas mensagens para o usuário, mas a mensagem so é mostrada quando eu de alguma forma saio do while
alguém ajuda por favor...
Método doGEt da servlet...
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Usuario usuariologado = (Usuario) request.getSession().getAttribute("usuariologado");
UserChat usuarioChat = new UserChat(usuariologado.getNome(), usuariologado.getNumero_matricula());
usuarioChat.setResponse(response);
usuarioChat.setRequest(request);
Sala.sendMessage(new Mensagens (usuarioChat, "entrou na sala: " + new SimpleDateFormat("hh:mm").format(new Date())));
while (usuarioChat.isConnected()) {
try {
// espera pela proxima mensagem
Mensagens msg = usuarioChat.getNewMessage();
// checa a sessao
usuarioChat.checkSession();
// se for uma mensagem, mostra ela, se nao, verifica a conexao
if(msg != null){
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>mensagens</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<div>"+ msg.getHTMLCode()+"</div>");
out.println("</BODY>");
out.println("</HTML>");
}else{
Sala.sendMessage(null);
}
} catch (Exception e) {
//Sala.sendMessage( new Mensagens(usuarioChat, e.getMessage()));
System.out.println("Erro "+ e.getMessage());
usuarioChat.disconnect();
}
}
// tira o usuario da lista e tira sua sessao
Sala.removeUser(usuarioChat);
}
obs: estou criando um chat web baseado no tutorial do site.