⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatlistener.java

📁 voiceim:语音网站聊天器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//package voicexml_im;import com.echomine.jabber.*;import java.io.BufferedReader;import java.io.PrintWriter;import java.io.InputStreamReader;import java.util.HashMap;import java.util.StringTokenizer;import java.util.Enumeration;import java.util.Hashtable;import java.util.List;import java.util.Vector;import javax.servlet.http.*;import javax.servlet.*;public class ChatListener    implements JabberMessageListener {  private JabberContext jabberContext;  private Jabber jabber;  private JabberSession jabberSession;  private JabberRosterService roster;  private JabberPresenceService presence;  private JabberChatService chatService;  private JabberClientService clientService;  private JabberMessageParser messageParser;  private JabberUserService userService;  private JabberServerService serverService;  private JabberMessageHandler messageHandler;  private Hashtable allOnlineBuddies = new Hashtable();  private Hashtable allOnlineBuddiesStates = new Hashtable();  private int counter = 0;  private PrintWriter pw;  private final String JABBER_SERVER = "borderlinenormal.com";  private final String AIM_GATEWAY = "aim.chote.com";  private final String MSN_GATEWAY = "msn.chote.com";  private final int JABBER_SERVER_PORT = 5222;  private String from;  private BufferedReader in;  private String userName, password;  private HashMap map = new HashMap();  private Vector allChatMsgs = new Vector();  private Hashtable allMsgs = new Hashtable();  private HttpSession currentSession;  private HttpServletRequest request;  private HttpServletResponse response;  private Vector rosterVector = new Vector();  public ChatListener(HttpServletRequest req, HttpServletResponse res) {    request = req;    response = res;    userName = request.getParameter("userName");    StringTokenizer tokenizer = new StringTokenizer(request.getParameter(        "passWord"), " ");    password = tokenizer.nextToken();  }  private void displayMainMenu() {    System.out.println("\n\n*************STONE AGE CHAT**************");    System.out.println("***************MAIN MENU*****************");    System.out.println("1. Register an account with Jabber");    System.out.println("2. Log in!");    System.out.println("H. Help/Program Description!");    System.out.println("Q. Quit!");    System.out.println("*****************************************");  }  private void start() {    try {      String cmd;      displayMainMenu();      cmd = in.readLine();      if (cmd.equals("1"))        registerAccount();      else      if (cmd.equals("2"))        login();      else      if (cmd.equals("H"))        displayProgramInfo();      else        System.exit(0);    }    catch (Exception e) {      e.printStackTrace();    }  }  private void registerAccount() {    try {      String rePassword;      do {        System.out.print("Desired Jabber Username: ");        userName = in.readLine();        System.out.print(            "Desired Jabber Password (Remember password will echo back :)  : ");        password = in.readLine();        System.out.print(            "Reenter Desired Jabber Password (Remember password will echo back :)  : ");        rePassword = in.readLine();      }      while (userName.hashCode() == 0 || password.hashCode() == 0 ||             rePassword.hashCode() == 0 ||             userName == null || password == null || rePassword == null ||             !rePassword.equals(password));      jabberContext = new JabberContext(userName, password, JABBER_SERVER);      jabber = new Jabber();      jabberSession = jabber.createSession(jabberContext);      jabberSession.connect(JABBER_SERVER, JABBER_SERVER_PORT);      map.put("username", userName);      map.put("password", password);      jabberSession.getUserService().register(JABBER_SERVER, map);      jabberSession.getUserService().login();      serverService = jabberSession.getServerService();      List agents = serverService.getAgents();      roster = jabberSession.getRosterService();      presence = jabberSession.getPresenceService();      chatService = jabberSession.getChatService();      messageParser = jabberSession.getMessageParser();      userService = jabberSession.getUserService();      clientService = jabberSession.getClientService();//      presence.setToAvailable(null, null, false);      for (int i = 0; i < agents.size(); i++) {        Agent jid = (Agent) agents.get(i);//  System.out.println(jid.getTransport()+"  "+jid.getService());        if (jid.getService().equals("aim")) {          map = jabberSession.getUserService().getRegisterFields(jid.getJID());          System.out.print("\nAdding your regular AIM account...Enter n if dont want to add, otherwise press anything: ");          String answer = in.readLine();          if (answer.equals("n") || answer.equals("N")) {            System.out.println("Skipping");            continue;          }          String aimUser, aimPassword;          do {            System.out.print("Enter AIM UserName (eg: tonyblair) : ");            aimUser = in.readLine();            System.out.print(                "Enter AIM Password (Remember password will echo back :)  : ");            aimPassword = in.readLine();            System.out.print(                "Reenter AIM Password (Remember password will echo back :)  : ");            rePassword = in.readLine();          }          while (aimUser.hashCode() == 0 || aimPassword.hashCode() == 0 ||                 rePassword.hashCode() == 0 ||                 aimUser == null || aimPassword == null || rePassword == null ||                 !rePassword.equals(aimPassword));          map.put("username", aimUser);          map.put("password", aimPassword);          jabberSession.getUserService().register(jid.getJID(), map);        }        if (jid.getService().equals("msn")) {          map = jabberSession.getUserService().getRegisterFields(jid.getJID());          System.out.print("\nAdding your regular MSN account...Enter n if dont want to add, otherwise press anything: ");          String answer = in.readLine();          if (answer.equals("n") || answer.equals("N")) {            System.out.println("Skipping");            continue;          }          String msnUser, msnPassword;          do {            do {              System.out.print(                  "Enter MSN UserName (eg: georgebush@hotmail.com) : ");              msnUser = in.readLine();            }            while (msnUser.indexOf("@") == -1);            System.out.print(                "Enter MSN Password (Remember password will echo back :)  : ");            msnPassword = in.readLine();            System.out.print(                "Reenter MSN Password (Remember password will echo back :)  : ");            rePassword = in.readLine();          }          while (msnUser.hashCode() == 0 || msnPassword.hashCode() == 0 ||                 rePassword.hashCode() == 0 ||                 msnUser == null || msnPassword == null || rePassword == null ||                 !rePassword.equals(msnPassword));          map.put("username", msnUser);          map.put("password", msnPassword);          jabberSession.getUserService().register(jid.getJID(), map);        }      }      System.out.println("\n\nPlease wait...");      jabberSession.addMessageListener(this);      jabberSession.getPresenceService().setToAvailable("chat", "Online", false);      roster.requestRosterList(false);      CommandListener cmdListener = new CommandListener();      Thread thrd = new Thread(cmdListener);      thrd.start();    }    catch (Exception e) {      try {        map = jabberSession.getUserService().getRegisterFields(JABBER_SERVER);        //System.out.println(map.get("key"));        jabberSession.getUserService().removeRegisterService(JABBER_SERVER,            (String) map.get("key"));        e.printStackTrace();        System.exit(1);      }      catch (Exception e2) {        e2.printStackTrace();        System.exit(1);      }    }  }  public void login() {    try {      System.out.println("Logging into your account...");      jabberContext = new JabberContext(userName, password, JABBER_SERVER);      jabber = new Jabber();      jabberSession = jabber.createSession(jabberContext);      jabberSession.connect(JABBER_SERVER, JABBER_SERVER_PORT);      jabberSession.getUserService().login();      serverService = jabberSession.getServerService();      roster = jabberSession.getRosterService();      presence = jabberSession.getPresenceService();      chatService = jabberSession.getChatService();      messageParser = jabberSession.getMessageParser();      userService = jabberSession.getUserService();      clientService = jabberSession.getClientService();      System.out.println("\n\nPlease wait...\n");      jabberSession.addMessageListener(this);      jabberSession.getPresenceService().setToAvailable("chat", "Online", false);      roster.requestRosterList(false);      //CommandListener cmdListener = new CommandListener();      //Thread thrd = new Thread(cmdListener);      // thrd.start();    }    catch (Exception e) {      System.out.println("\n\nWrong password/username! Run again!\n");      //e.printStackTrace();      System.exit(1);    }  }  public Vector getVector() {    return rosterVector;  }  public Hashtable getAllOnlineBuddies() {    return allOnlineBuddies;  }  //public String getRoster(){  // String voicexmlString="";  //voicexmlString.concat("<?xml version = \"1.0\"?>"+  //     "<vxml version = \"2.0\">"+  //     "<form> <block>");  //  for(int i=0; i<rosterVector.size(); i++){  //    voicexmlString.concat("<prompt>");  //     voicexmlString.concat((String)rosterVector.elementAt(i));  //    voicexmlString.concat("welcome");  //    voicexmlString.concat("<break size = \"small\" />");  //    voicexmlString.concat("</prompt>");  //  System.out.println((String)rosterVector.elementAt(i));  // }  // System.out.println(rosterVector);  //  return "<prompt>welcome</prompt>";  //}  public void messageReceived(JabberMessageEvent msg) {    //System.out.println(msg.getMessage());    try {//	if(msg.getMessageType()==JabberCode.MSG_//      System.out.println("Rev= "+msg.getMessage());      if (msg.getMessageType() == JabberCode.MSG_PRESENCE) {        JabberPresenceMessage presMsg = (JabberPresenceMessage) msg.getMessage();        //jabberSession.getPresenceService().sendSubscribed(presMsg.getFrom());        //jabberSession.getPresenceService().subscribe(presMsg.getFrom());        if (presMsg.getType().equals("subscribe")) {          jabberSession.getPresenceService().acceptSubscribe(presMsg);        }        // System.out.println(presMsg.getFrom()+", "+presMsg.getShowState()+", "+presMsg.getStatus()+", "+presMsg.getType());        if (presMsg.getType().equals("available")) {          System.out.println("\n\n**** " + presMsg.getFrom() +                             " just came online!, ID assigned=" + counter +                             "\n");          allOnlineBuddies.put(presMsg.getFrom(), new Integer(counter++));          allOnlineBuddiesStates.put(presMsg.getFrom(), presMsg.getStatus());          // rosterVector.add(presMsg.getFrom());        }        if (presMsg.getType().equals("unavailable")) {          System.out.println("\n\n**** " + presMsg.getFrom() +                             " just went offline! **********");          allOnlineBuddies.remove(presMsg.getFrom());          allOnlineBuddiesStates.remove(presMsg.getFrom());          //  rosterVector.remove(presMsg.getFrom());        }//        refreshOnlineList();      }      if (msg.getMessageType() == JabberCode.MSG_CHAT) {        receivedChatMsg(msg);      }      //  else      //  System.out.println("Recv: "+msg);    }    catch (Exception e) {      e.printStackTrace();    }  }  public Hashtable getMsgVector() {    return allMsgs;  }  public void setMsgVector(Hashtable h) {    allMsgs = h;  }  public void setSaid(JabberChatMessage chatMsg) {    allMsgs.put(chatMsg, new String("said"));  }  private void receivedChatMsg(JabberMessageEvent msg) {    JabberChatMessage chatMsg = (JabberChatMessage) msg.getMessage();    if (chatMsg.getType().equals(JabberChatMessage.TYPE_HEADLINE)) {      System.out.println(" HEADLINE MESG RECV: ---> " + chatMsg.getFrom() +                         " says:  \"" + chatMsg.getBody() + "\"\n");    }    if (allOnlineBuddies.containsKey(chatMsg.getFrom())) {      System.out.println(" MESG RECV: ---> FROM:  " + chatMsg.getFrom() +                         "  ID=" +                         ( (Integer) allOnlineBuddies.get(chatMsg.getFrom())).                         intValue() + "  says: \n \"" + chatMsg.getBody() +                         "\"");      allMsgs.put(chatMsg, new String("not said"));      allChatMsgs.add(" MESG RECV: ---> FROM:  " + chatMsg.getFrom() + "  ID=" +                      ( (Integer) allOnlineBuddies.get(chatMsg.getFrom())).                      intValue() + "  says: \n \"" + chatMsg.getBody() + "\"");    }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -