`
baobeituping
  • 浏览: 1042560 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

smack操作openfire的API介绍(2)

 
阅读更多
  1. public class IMServer {   
  2.   
  3.     private ConnectionConfiguration connectionConfig;   
  4.     private XMPPConnection connection;   
  5.     private Roster roster;   
  6.     private boolean loginState;   
  7.     private Listener listener;   
  8.     /**  
  9.      * 构造 IMServer(serviceName)  
  10.      */  
  11.     public IMServer(String serviceName) {   
  12.         connectionConfig = new ConnectionConfiguration(serviceName);   
  13.         connection = new XMPPConnection(connectionConfig);   
  14.         listener=new Listener();   
  15.         try {   
  16.             connection.connect();   
  17.         } catch (XMPPException e) {   
  18.             e.printStackTrace();   
  19.         }   
  20.     }   
  21.   
  22.     /**  
  23.      * 构造 IMServer(host,port)  
  24.      */  
  25.     public IMServer(String host, String port) {   
  26.   
  27.         connectionConfig = new ConnectionConfiguration(host, Integer   
  28.                 .parseInt(port));   
  29.         connection = new XMPPConnection(connectionConfig);   
  30.         listener=new Listener();   
  31.         try {   
  32.             connection.connect();   
  33.         } catch (XMPPException e) {   
  34.             e.printStackTrace();   
  35.         }   
  36.     }   
  37.   
  38.     /**  
  39.      * 构造 IMServer(host port serviceName)  
  40.      */  
  41.     public IMServer(String host, int port, String serviceName) {   
  42.         connectionConfig = new ConnectionConfiguration(host, port, serviceName);   
  43.         connection = new XMPPConnection(connectionConfig);   
  44.         listener=new Listener();   
  45.            
  46.         try {   
  47.             connection.connect();   
  48.                
  49.         } catch (XMPPException e) {   
  50.             e.printStackTrace();   
  51.         }   
  52.     }   
  53.   
  54.     /**  
  55.      * 账户登陆 Server  
  56.      *   
  57.      * @return boolean  
  58.      */  
  59.     public boolean loginServer(String userName, String userPswd) {   
  60.         try {   
  61.             connection.login(userName, userPswd);   
  62.             loginState = true;   
  63.             roster = connection.getRoster();   
  64.                
  65.             listener.regConnectionListener(connection);   
  66.             listener.regPackListener(connection);   
  67.             listener.onlineServer(connection);   
  68.             listener.regRosterListener(roster);   
  69.         } catch (XMPPException e) {   
  70.             e.printStackTrace();   
  71.         }   
  72.         return loginState;   
  73.     }   
  74.        
  75.        
  76.   
  77.     /**  
  78.      * 注册新账号  
  79.      *   
  80.      * @return boolean  
  81.      */  
  82.     public boolean createAccount(String regUserName, String regUserPswd) {   
  83.         try {   
  84.             connection.getAccountManager().createAccount(regUserName,   
  85.                     regUserPswd);   
  86.             return true;   
  87.         } catch (XMPPException e) {   
  88.             e.printStackTrace();   
  89.             return false;   
  90.         }   
  91.   
  92.     }   
  93.   
  94.     /**  
  95.      * 账户退出 Server  
  96.      *   
  97.      * @return boolean  
  98.      */  
  99.     public boolean logoutServer() {   
  100.         if (loginState) {   
  101.             connection.disconnect();   
  102.             listener.stopOnlineThread();   
  103.             loginState = false;   
  104.         }   
  105.         return !loginState;   
  106.     }   
  107.   
  108.     /**  
  109.      * 返回所有用户信息 <RosterEntry>  
  110.      *   
  111.      * @return List(RosterEntry)  
  112.      */  
  113.     public List<RosterEntry> getOnlineEntries() {   
  114.         List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();   
  115.         Collection<RosterEntry> rosterEntry = roster.getEntries();   
  116.         Iterator<RosterEntry> i = rosterEntry.iterator();   
  117.         while (i.hasNext()){   
  118.            
  119.             EntriesList.add(i.next());   
  120.         }   
  121.         return EntriesList;   
  122.     }   
  123.     /**  
  124.      * 返回所有用户信息 <RosterEntry>  
  125.      *   
  126.      * @return List(RosterEntry)  
  127.      */  
  128.     public List<RosterEntry> getAllEntries() {   
  129.         List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();   
  130.         Collection<RosterEntry> rosterEntry = roster.getEntries();   
  131.         Iterator<RosterEntry> i = rosterEntry.iterator();   
  132.         while (i.hasNext())   
  133.             EntriesList.add(i.next());   
  134.         return EntriesList;   
  135.     }   
  136.   
  137.     /**  
  138.      * 返回相应(groupName)组里的所有用户<RosterEntry>  
  139.      *   
  140.      * @return List(RosterEntry)  
  141.      */  
  142.     public List<RosterEntry> getEntriesByGroup(String groupName) {   
  143.         List<RosterEntry> EntriesList = new ArrayList<RosterEntry>();   
  144.         RosterGroup rosterGroup = roster.getGroup(groupName);   
  145.         Collection<RosterEntry> rosterEntry = rosterGroup.getEntries();   
  146.         Iterator<RosterEntry> i = rosterEntry.iterator();   
  147.         while (i.hasNext())   
  148.             EntriesList.add(i.next());   
  149.         return EntriesList;   
  150.     }   
  151.   
  152.     /**  
  153.      * 返回所有组信息 <RosterGroup>  
  154.      *   
  155.      * @return List(RosterGroup)  
  156.      */  
  157.     public List<RosterGroup> getGroups() {   
  158.         List<RosterGroup> groupsList = new ArrayList<RosterGroup>();   
  159.         Collection<RosterGroup> rosterGroup = roster.getGroups();   
  160.         Iterator<RosterGroup> i = rosterGroup.iterator();   
  161.         while (i.hasNext())   
  162.             groupsList.add(i.next());   
  163.         return groupsList;   
  164.     }   
  165.   
  166.     /**  
  167.      * @return connection  
  168.      */  
  169.     public XMPPConnection getConnection() {   
  170.         return connection;   
  171.     }   
  172.   
  173.     /**  
  174.      * @return loginState  
  175.      */  
  176.     public boolean getLoginState() {   
  177.         return loginState;   
  178.     }   
  179.   
  180.     /**  
  181.      * @return roster  
  182.      */  
  183.     public Roster getRoster() {   
  184.         return roster;   
  185.     }   
  186. }  
分享到:
评论

相关推荐

    基于smack4.1.4 openfire的即时通讯(IM)

    搭建openfire后,用 smack api 连接服务的测试demo。运行官网范例,发现其实不易,smack4.1.4中缺少很多依赖于第3方的jar包。不断debug甚是痛苦,终于跑起来了。分享出来给只是想要个初体验的同学。

    android使用smack,openfire通信

    Asmack是smack的android版,是对xmpp协议进行了封装,并提供了丰富的api,简化了操作。Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。

    spark_smack_openfire_讲解

    Smack是一个为使用XMPP服务器聊天和发送即时消息交流而提供的库。 Smack的主要优势: 使用简单且拥有强大的API。向用户发送一条文本消息只需用一下三行...本文档将向你介绍Smack API,并大概介绍几个重要的类和概念。

    Smack API中文版

    这个是Smack API的中文版,详细介绍了smack原理,并且有几个小例子在里面

    Smack API java的类库

    smack API XMPP,openfire开发必备。

    javasmack源码-Smack-Openfire:我使用Android,包括心跳和自动重新连接

    Smack-Openfire im with Android, include heartbeat and auto reconnect 图文详情地址: Smack是一个开源,易于使用的XMPP(jabber)客户端类库。优点:简单的,功能强大,给用户发送信息只需三行代码便可完成。...

    smack3.2的api

    smack api,xmpp协议的客户端开发

    基于xmpp_openfire_smack开发之smack类库介绍和使用

    关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。

    smack api 中文

    找了好久,终于找到了smack中文版的api了

    smack API

    smack API XMPP,openfire开发必备,多多支持哦

    Openfire_spark_安装手册

    Smack是即时通信客户端编程库,目前我已测通通过jsp使用smack的API向openfire注册用户发送消息,并且可以通过监听器获得此用户的应答消息。 通过smack向msn用户和QQ用户,gtalk用户发送消息应该也可以实现,关于向...

    SmackAPI_CN

    smark+openfire 构建即时通讯系统,本资源为smark的中文API

    smack4.3.4+spark2.8.3.zip

    Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用Smack的api来实现,从4.1.0开始,它就支持Android了,所以我们直接使用Smack即可,当然在这不支持之前是使用Asmack这个包的,里面...

    smack详细类库

    资料中详细分析SMACK类库的指令,是IM即时通讯编程的开源api

    xmpp-client:具有smack API的Java客户端

    具有Openfire和Smack Api的Java客户端屏幕内容它是使用Java编写的Smack API和Openfire服务器与Spark客户端进行通信的客户端。谢谢

    openfire+spark+安卓的聊天解决方案

    使用openfire作为IM服务器,spark作为pc端,本实例作为安卓客户端进行聊天交流,注意本代码是安卓端,其他组件可以上相关网站下载,按照步骤搭建好环境之后,使用本...通过本代码,你可以学习如何使用smack库的api接口

    安卓XMPP聊天通讯Socket相关-OpenfireSmackSpark实现Android端的即时通讯APP仿微信。功能已基本实现完毕本项目基于Smack4.1.3这个版本的smack有很大的改动网上的Demo很少基本都是查看API实现的.zip

    Openfire Smack Spark实现Android端的即时通讯APP(仿微信)。 功能已基本实现完毕,本项目基于Smack 4.1.3,这个版本的smack有很大的改动,网上的Demo很少,基本都是查看API实现的.zip,太多无法一一验证是否可用,...

    smack开发包

    smack4.0.4的所有jar包和API文档

    WeChat-app-master .zip

    Openfire+Smack+Spark实现Android端的即时通讯APP(仿微信)。 功能已基本实现完毕,本项目基于Smack 4.1.3,这个版本的smack有很大的改动,网上的Demo很少,基本都是查看API实现的。

    android 包局域网IM简单的使用asmack jar的Demo

    1. 提供最新的2014-6-20的asmack jar包。 2. 可以参考smack的API文档进行开发。 3. 只是简单地针对openfire服务器进行connect和Login,并下拉了局域网用户数据信息。 4. Demo待完善中……

Global site tag (gtag.js) - Google Analytics