热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

XMPP通讯开发服务器好友获取以及监听状态变化

在XMPP通讯开发-好友获取界面设计我们设计了放QQ的列表功能,这里我们获取我们服务器上的数据。这一部分知识我们可以查看smack_3_3_0smack_3_3_0d

在 XMPP通讯开发-好友获取界面设计   我们设计了放QQ的列表功能,这里我们获取我们服务器上的 数据。

这一部分知识我们可以查看smack_3_3_0/smack_3_3_0/documentation/roster.html,这个是官方的文档,介绍了我们可以使用Roster来获取,同时我们还可以注册监听器,当用户的状态信息发生变化的时候可以通知UI进行更新。

获取好友实体

Roster是一个集合,我们看一下集合中的实体是由什么组成的。

Every user in a roster is represented by a RosterEntry, which consists of:

  • An XMPP address (e.g.jsmith@example.com).
  • A name you've assigned to the user (e.g. "Joe").
  • The list of groups in the roster that the entry belongs to. If the roster entry belongs to no groups, it's called an "unfiled entry".

简单的说就是XMPP地址,用户名,用户组

 

public void getRoster(){if(conn != null){roster = conn.getRoster();Collection entries = roster.getEntries();for(RosterEntry entry : entries){System.out.println(entry);}}}

 

我调试的打印信息如下,可以看到格式里面分别包含用户名,XMPP地址,用户组

dfffff: dfff@zhangjie [Friends]
sdfsdf:
sdf@zhangjie [Friends]
123:
123@zhangjie [Friends]

获取好友的分组

代码如下:

 

Collection groups = roster.getGroups();for(RosterGroup group : groups){System.out.println(group.getName());}

 

终端的调试信息:

客户
好友
Friends

当然我们还可以添加用户组和用户同时也可以删除

createGroup

createEntry

removeEntry

监听好友状态变化

Roster还能够监听状态变化,方法如下:

 

/*** 注册监听状态变化*/public void getRosterPresenceChange(){if(roster != null){roster.addRosterListener(new RosterListener(){@Overridepublic void entriesAdded(Collection addresses) {}@Overridepublic void entriesUpdated(Collection addresses) {}@Overridepublic void entriesDeleted(Collection addresses) {}@Overridepublic void presenceChanged(Presence prsnc) {System.out.println("Change: "+ prsnc.getFrom()+" status :"+prsnc.getStatus());}});}}

 


将好友中的123登出:

Change: 123@zhangjie/Spark 2.6.3 status :null

然后登陆123:

Change: 123@zhangjie/Spark 2.6.3 status :在线

下一章会将界面和后台数据结合起来,实现用户列表功能


源码项目:https://github.com/jwzhangjie/IChat_PC.git

 



推荐阅读
author-avatar
天勤-科技
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有