基于Smack3.0.4+ Openfire3.10.2下学习开发IM(四)用户分组操作:添加和删除分组、好友添加指定分组和不指定分组(Roster、RosterGroup和RosterEntry)
来源:互联网 发布:vm12 mac os 编辑:程序博客网 时间:2024/04/28 11:56
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了。后来在网上看到用openfire做服务器,利用强大的Smack API库来实现IM聊天就简单多了。
网上也有很多关于这方面的资料,我就在这里把网上的资料和自己的理解总结一下和大家一起交流学习。
需要用到以下几个工具:
Openfire 最新版本(openfire 3.10.2)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
安装配置可参考:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html
Smack 最新版本(Smack4.1.4,而我选用的Smack是3.0.4版本)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
需要安装的安装好,需要下载的下载好(这里就不多作介绍)。创建项目工程,导入Smack jar包,OK,下面就一起去学习:添加和删除分组、好友添加指定分组和不指定分组等一些功能!
首先第一、与服务器建立好连接
关键代码:zhou_pc为服务器IP,5222为服务器端口号
package com.openfire.util;import org.jivesoftware.smack.ConnectionConfiguration;import org.jivesoftware.smack.XMPPConnection;public class SmackConnectionUtil {private static XMPPConnection connection = null;public static XMPPConnection getInstance(String serverName, int port) {if (connection == null) {ConnectionConfiguration config = new ConnectionConfiguration(serverName, port);config.setSASLAuthenticationEnabled(false);connection = new XMPPConnection(config);}return connection;}}二、添加一个分组
/** * 添加一个分组 * * @param roster * @param groupName * @return */ public static boolean addGroup(Roster roster, String groupName) { try { roster.createGroup(groupName); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
三、删除一个分组 (备注:smack暂时不支持删除分组)
/** * 删除一个分组 (备注:smack暂时不支持删除分组) * * @param roster * @param groupName * @return */ public static boolean removeGroup(Roster roster, String groupName) { return false; }四、添加好友 无分组
/** * 添加好友 无分组 * * @param roster * @param userName * @param name * @return */ public static boolean addUser(Roster roster, String userName, String name) { try { roster.createEntry(userName, name, null); return true; } catch (Exception e) { e.printStackTrace(); return false; } }相关截图:
五、添加好友 有分组
/** * 添加好友 有分组 * * @param roster * @param userName * @param name * @param groupName * @return */ public static boolean addGroupUser(Roster roster, String userName, String name, String groupName) { try { roster.createEntry(userName, name, new String[] { groupName }); return true; } catch (Exception e) { e.printStackTrace(); return false; } }相关截图:
六、删除好友
/** * 删除好友 * * @param roster * @param userName * @return */ public static boolean removeUser(Roster roster, String userName) { try { if (userName.contains("@")) { userName = userName.split("@")[0]; } RosterEntry entry = roster.getEntry(userName); System.out.println("删除好友:" + userName); System.out.println("User." + roster.getEntry(userName) == null); roster.removeEntry(entry); return true; } catch (Exception e) { e.printStackTrace(); return false; } }相关截图:
源码下载地址:OpenFire3.10.2+Smack3.0.4
0 0
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(四)用户分组操作:添加和删除分组、好友添加指定分组和不指定分组(Roster、RosterGroup和RosterEntry)
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(二)用户分组信息(Roster、RosterGroup和RosterEntry)
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(一)实现用户登录、修改密码、删除指定用户和注册新用户等
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(五)聊天室操作:创建聊天室、成员添加聊天室、查询聊天室成员和监听聊天室
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- 基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- Android基于XMPP Smack Openfire下学习开发IM(二)对分组、好友和头像等一些操作
- 分组和条件指定
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(三)用户基础信息(VCard)
- xmpp im建立分组和获取分组
- QQ 添加分组 添加好友
- 数据库分组和分组函数
- Andrid的网络开发技术
- 3.0MongoDB对一个collection的常用操作
- leetcode-Remove Linked List Elements
- 汉字转拼音
- B - 四月纲领 light oj 1245【数论】
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(四)用户分组操作:添加和删除分组、好友添加指定分组和不指定分组(Roster、RosterGroup和RosterEntry)
- 每天学一点(一)
- 插件问题
- hdoj 3766 Knight's Trip 【】
- c++rand()与srand()的使用
- 小游戏
- LeetCode题解——Unique Binary Search Trees II
- manifest竟然不报错
- 开篇