1 package org.claros.chat.ajax; 2 3 import java.io.IOException ; 4 import java.io.PrintWriter ; 5 import java.util.List ; 6 7 import javax.servlet.ServletException ; 8 import javax.servlet.http.HttpServlet ; 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 12 import org.claros.chat.controllers.TrafficController; 13 import org.claros.chat.threads.ChatListener; 14 import org.jivesoftware.smack.XMPPConnection; 15 import org.jivesoftware.smack.packet.Presence; 16 17 public class Subscriptions extends HttpServlet { 18 19 22 private static final long serialVersionUID = 7617721914260091646L; 23 24 27 public Subscriptions() { 28 super(); 29 } 30 31 41 public void doGet(HttpServletRequest request, HttpServletResponse response) 42 throws ServletException , IOException { 43 44 response.setContentType("text/html"); 46 response.setHeader("Expires","-1"); 47 response.setHeader("Pragma","no-cache"); 48 response.setHeader("Cache-control","no-cache"); 49 response.setHeader("Content-Type", "text/html; charset=utf-8"); 50 51 PrintWriter out = response.getWriter(); 52 53 XMPPConnection conn = (XMPPConnection)request.getSession().getAttribute("conn"); 54 if (conn != null) { 55 String xmppUser = conn.getUser(); 56 if (xmppUser != null) { 57 ChatListener listener = TrafficController.getListener(xmppUser); 58 59 if (listener != null) { 60 List msgs = listener.getNewSubscriptions(); 61 62 if (msgs != null && msgs.size() > 0) { 63 Presence prs = null; 64 String from = null; 65 66 for (int i=0;i<msgs.size(); i++) { 67 prs = (Presence)msgs.get(i); 68 from = prs.getFrom(); 69 out.println("alert('" + from + "');"); 70 71 prs.setType(Presence.Type.SUBSCRIBED); 73 prs.setFrom(listener.getUser()); 74 prs.setTo(from); 75 conn.sendPacket(prs); 76 } 77 } 78 } 79 } 80 } 81 out.flush(); 82 out.close(); 83 } 84 85 95 public void doPost(HttpServletRequest request, HttpServletResponse response) 96 throws ServletException , IOException { 97 98 doGet(request, response); 99 } 100 } 101 | Popular Tags |