package com.jzh.news.xmpp; import java.util.HashMap; import java.util.Map; import org.jivesoftware.smack.AccountManager; import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import com.google.gson.Gson; import com.jzh.news.entity.User; /** * <b>function:</b> ����Smack������ XMPP Э��ͨ�� * * @author hoojo * @createDate 2012-5-22 ����10:28:18 * @file ConnectionServerTest.java * @package com.hoo.smack.conn * @project jwchat * @blog http://blog.csdn.net/IBM_hoojo * @email [email protected] * @version 1.0 */ public class XmppTool { private static Connection connection; private static ConnectionConfiguration config; public static String server = "123.207.145.194"; //public static String server = "127.0.0.1"; public static boolean create(User user) { if (connection == null) { init(); } // String strs = user.getUser() + ";" + user.getNickname() + ";" // + user.getIcon() + ";" + user.getSex(); String pswd = user.getPassword(); user.setPassword(null); String strs = new Gson().toJson(user); System.out.println(strs); AccountManager accountManager = connection.getAccountManager(); try { /** * ����һ���û�boy������Ϊboy��������ڹ��Ա����̨ҳ��http://192.168.8.32:9090/user- * summary.jsp�鿴�û�/��������Ϣ�����鿴�Ƿ�ɹ������û� */ Map<String, String> map = new HashMap<String, String>(); map.put("name", strs); map.put("email", "[email protected]"); accountManager.createAccount(user.getUser(), pswd, map); System.out.println(user.getUser() + "\t" + pswd + "��xmppע��ɹ�"); return true; /** ������ */ // accountManager.changePassword("abc"); } catch (XMPPException e) { e.printStackTrace(); return true; } } /** * ��¼ * * @param user * @param password */ public static void login(String user, String password) { if (connection == null) { init(); } try { /** �û���½���û�������� */ connection.login(user, password); } catch (XMPPException e) { e.printStackTrace(); } /** ��ȡ��ǰ��½�û� */ fail("User:", connection.getUser()); addGroup(connection.getRoster(), "�ҵĺ���"); addGroup(connection.getRoster(), "�����"); System.out.println("OK"); } /** * ���һ���� */ public static boolean addGroup(Roster roster, String groupName) { try { roster.createGroup(groupName); return true; } catch (Exception e) { e.printStackTrace(); return false; } } // -----------���²��ÿ�----------------------------------------------------- private final static void fail(Object o) { if (o != null) { System.out.println(o); } } private final static void fail(Object o, Object... args) { if (o != null && args != null && args.length > 0) { String s = o.toString(); for (int i = 0; i < args.length; i++) { String item = args[i] == null ? "" : args[i].toString(); if (s.contains("{" + i + "}")) { s = s.replace("{" + i + "}", item); } else { s += " " + item; } } System.out.println(s); } } /** * <b>function:</b> ��ʼSmack��openfire��������ӵĻ������� * * @author hoojo * @createDate 2012-6-25 ����04:06:42 */ public static void init() { try { // connection = new XMPPConnection(server); // connection.connect(); /** * 5222��openfire�����Ĭ�ϵ�ͨ�Ŷ˿ڣ�����Ե�¼http://192.168.8.32:9090/ * �����Ա����̨�鿴�ͻ��˵�������˿� */ config = new ConnectionConfiguration(server, 5222); /** �Ƿ�����ѹ� */ config.setCompressionEnabled(true); /** �Ƿ����ð�ȫ��֤ */ config.setSASLAuthenticationEnabled(false); /** �Ƿ����õ��� */ config.setDebuggerEnabled(false); // config.setReconnectionAllowed(true); // config.setRosterLoadedAtLogin(true); /** ����connection���� */ connection = new XMPPConnection(config); /** �������� */ connection.connect(); } catch (XMPPException e) { e.printStackTrace(); } // fail(connection); // fail(connection.getConnectionID()); } }