HI END


一种永不妥协,追求极致与完美的精神与态度。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

XMPP——Smack[1]连接、登陆及账户操作(转)

Posted on 2012-10-17 10:27  HI END  阅读(358)  评论(0编辑  收藏  举报

 来源:http://blog.csdn.net/wklken/article/details/6460075

一、XMPP

XMPP : The Extensible Messaging and Presence Protocol

中文全称:可扩展通讯和表示协议

简介:

可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求 - 响应服务中的 XML 数据元流式传输。XMPP 以 Jabber 协议为基础,而 Jabber 是即时通讯中常用的开放式协议。

 

二、Smack

    Smack是一个开源,易于使用的XMPP(jabber)客户端类库。

   Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。 优点:编程简单。 缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.

smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心.

 

二、连接及断开

基本方法

 XMPPConnection connection = new XMPPConnection("gmail.com");

        connection.connect();

实现的方法

 

 

  1. public static XMPPConnection getConnection(String domain) throws XMPPException {  
  2.       
  3.      XMPPConnection connection = new XMPPConnection(domain);  
  4.      connection.connect();  
  5.      return connection;  
  6. }  
  7.   
  8.   
  9. public static XMPPConnection getConnection(String domain,int port) throws XMPPException {  
  10.      ConnectionConfiguration config = new ConnectionConfiguration(domain,port);  
  11.      XMPPConnection connection = new XMPPConnection(config);  
  12.      connection.connect();  
  13.      return connection;  
  14. }  

 

断开  

     connection.disconnect();

     

四、登陆

connection.login("javatest2011@gmail.com", "*****");

 

五、账户操作

 

   可以对账户进行基本操作,包括注册,注销,修改密码

  1. /** 
  2.      * 注册用户 
  3.      * @param connection 
  4.      * @param regUserName 
  5.      * @param regUserPwd 
  6.      * @return 
  7.      */  
  8.     public static boolean createAccount(XMPPConnection connection,String regUserName,String regUserPwd)  
  9.     {  
  10.         try {  
  11.             connection.getAccountManager().createAccount(regUserName, regUserPwd);  
  12.             return true;  
  13.         } catch (Exception e) {  
  14.             return false;  
  15.         }  
  16.     }  
  17.       
  18.     /** 
  19.      * 删除当前用户 
  20.      * @param connection 
  21.      * @return 
  22.      */  
  23.     public static boolean deleteAccount(XMPPConnection connection)  
  24.     {  
  25.         try {  
  26.             connection.getAccountManager().deleteAccount();  
  27.           
  28.             return true;  
  29.         } catch (Exception e) {  
  30.             return false;  
  31.         }  
  32.     }  
  33.       
  34.     /** 
  35.      * 删除修改密码 
  36.      * @param connection 
  37.      * @return 
  38.      */  
  39.     public static boolean changePassword(XMPPConnection connection,String pwd)  
  40.     {  
  41.         try {  
  42.             connection.getAccountManager().changePassword(pwd);  
  43.           
  44.             return true;  
  45.         } catch (Exception e) {  
  46.             return false;  
  47.         }  
  48.     }