`
baobeituping
  • 浏览: 1067780 次
  • 性别: 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. }  
分享到:
评论

相关推荐

    基于smack连接openfire服务器的例子-JAVA

    Smack简化了与XMPP服务器的通信,提供了丰富的API来处理用户认证、会话管理、消息发送和接收、以及用户状态等。 首先,确保已经正确地安装了Smack库。通常,这可以通过在项目的构建路径中添加Smack的JAR文件或者...

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

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

    IM(Spark+Smack+Openfire)开发资料详细说明文档

    本文档详细介绍了基于Spark、Smack和Openfire构建IM系统的开发过程和关键知识点,旨在帮助开发者更好地理解和实践。 1. **Spark**: Spark是一款开源的Web即时通讯客户端,支持多种平台,包括Windows、Linux和Mac ...

    android使用smack,openfire通信

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

    websocket+smack+openfire的所有lib库

    WebSocket、Smack 和 OpenFire 是三个在IT领域中与实时通信相关的关键技术,它们共同构建了高效、实时的网络通信解决方案。 WebSocket 是一种在 Web 应用程序中实现双向通信的协议,它允许客户端和服务器之间建立...

    websocket+smack+openfire的的源代码

    开发者可以通过这个源代码学习如何配置 Openfire 服务器,设置 WebSocket 连接,以及如何在客户端应用中使用 Smack API 进行即时通讯功能的开发。此外,源代码还可能包含了错误处理、安全配置、性能优化等方面的实践...

    Smack访问Openfire服务器的调用

    8. **群聊功能**:Openfire支持多用户聊天(MUC),Smack通过`MultiUserChat`类提供了相关的操作,如创建、加入群聊,发送群聊消息,管理群聊成员等。 9. **扩展功能**:Openfire和Smack都支持自定义XML扩展,这...

    smack连接openfire用到的jar包

    Openfire支持多种操作系统,并且具备强大的管理功能,如用户管理、群组管理、安全性设置等。通过Openfire,开发者可以搭建自己的即时通讯服务器,满足企业级或个人的需求。 要使用Smack连接Openfire,首先需要确保...

    openfire+spark+smack

    Openfire、Spark和Smack是三个与XMPP(Extensible Messaging and Presence Protocol)相关的开源项目,它们在构建即时通讯(IM)系统中扮演着重要角色。XMPP是一种基于XML的网络协议,主要用于实时通讯,包括消息...

    Openfire 4.2.3+Smack 4.3.0最新安装包

    解压smack_4_3_0.zip后,开发者可以使用其中的API来构建与Openfire或其他XMPP服务器交互的客户端应用。Smack提供了连接管理、会话建立、消息发送与接收、用户状态管理、多用户聊天室等功能。它的API设计直观,使得...

    spark_smack_openfire.zip_openfire spark_spark xmpp_xmpp _xmpp op

    1. 学习Smack的基本API,包括连接服务器、创建实体、发送和接收消息等。 2. 实现Smack的高级功能,如多用户聊天室、离线消息处理、推送通知等。 **四、Spark与Openfire的集成** 1. 配置Spark连接Openfire服务器,...

    spark_smack_openfire_讲解

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

    openfire+asmack中文api+androidDemo

    2. **Openfire服务器配置**:设置服务器、创建用户、管理认证和安全策略,包括SSL/TLS加密。 3. **ASMACK API**:学习如何在Android应用中初始化连接、登录、建立会话、发送和接收消息,以及处理离线消息和推送通知...

    Android端Smack对Openfire的访问

    5. **其他功能**:除了基本的消息收发,Smack还支持群聊、用户状态管理、Roster(联系人列表)操作等。例如,可以使用`Roster`类来获取、添加、删除联系人,或者使用`MUC`(Multi-User Chat)API来创建和参与群聊。 ...

    Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现.zip

    2. **Smack库**:Smack是Java和Android平台上的一个开源XMPP客户端库。它提供了一套API,使得开发者可以轻松地与XMPP服务器进行交互,包括登录、发送和接收消息、管理联系人列表等。在Android项目中,开发者可以通过...

    Smack API中文版

    Smack API与Openfire服务器配合使用,可以实现高效的、安全的P2P或者服务器中继的聊天功能。本文将深入探讨Smack API的基本概念、原理及其在实际应用中的使用方法。 ### 1. Smack API基本概念 Smack API是用Java...

    Android+smack4.1.4+openfire demo

    Smack 4.1.4是该库的一个版本,它提供了API,使得开发者可以方便地实现XMPP功能,如创建连接、登录、发送和接收消息、管理联系人等。 在Android应用中集成Smack 4.1.4,你需要: 1. 添加Smack库的依赖到项目构建...

    openfire+smack开发webim笔记

    Openfire提供了丰富的API和管理界面,使得开发者可以方便地集成即时通讯功能到自己的应用中。 【三】WebIM与JWChat WebIM是嵌入到网页中的即时通讯客户端,无需安装额外软件即可使用。JWChat是一个基于AJAX技术的...

Global site tag (gtag.js) - Google Analytics