zoukankan      html  css  js  c++  java
  • XMPP——Smack[1]连接、登陆及账户操作

    临毕业前,应需求,花了三天写了个小的聊天工具,貌似简陋得很….若有机会再完善吧,目前毕业季,处理毕业事宜,还要准备即将的入职。

    眼瞅着大学四年就这么结束了,哎。

    开始吧,四篇博文简单介绍下基本实现,由于时间有限,功能不是十分丰富,有兴趣的同学自己研究下协议和具体的实现

    需求:

    基于XMPP的IM工具,需实现和gtalk实现通信,需实现同spark的通信,需架设服务器,实现同自身客户端的通信,传文件,视频聊天

    写完未实现需要改进的地方:离线消息,离线文件

    一、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", "*****");

    五、账户操作

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

    [c-sharp] view plaincopyprint?
     
    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.     }  
  • 相关阅读:
    常见浏览器兼容性问题与解决方案
    [WinForm] VS2010发布、打包安装程序
    前端和后台对时间数值的增减操作(JavaScript和C#两种方法)
    C#类的继承,方法的重载和覆写
    web.config设置和取值
    linux nginx安装
    java Arrays.asList()和Collections.addAll()
    mysql数据库乱码
    Mysql不区分大小写
    ueditor
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/3765896.html
Copyright © 2011-2022 走看看