Smack4.20实现接收离线消息与花名册操作(3)
来源:互联网 发布:淘宝开店攻略创业篇 编辑:程序博客网 时间:2024/05/13 19:26
因为工作的原因,一直没时间上来更新,趁现在闲的时候更新下:
上一节我们实现了点对点的单聊与监听单聊消息,这节我将会介绍下如何接收离线记录和花名册的操作。
首先这里要重点说明一下(博主在这里也是踩坑踩了好多天) ,当登陆成功后,如果直接设置了登陆状态为在线的话,是不能获取到离线记录的,离离线消息记录直接就没了!!!没了!!,所以我们要先获取完离线记录再设置为在线,代码如下:
public List<Message> getOfflineMessage() throws Exception{ OfflineMessageManager offlineManager = new OfflineMessageManager(connection); //获取离线消息 List<Message> messageList = offlineManager.getMessages(); //特别说明,这条代码的意思是获取离线消息的数量,我也不知道为啥只有加了这句才可以真正删除离线记录, //否则就一直删不掉,老重复接收重复的离线消息记录 offlineManager.getMessageCount(); //获取后删除离线消息记录 offlineManager.deleteMessages(); //设置在线,只有设置了在线状态,才可以监听在线消息,否则监听都无效 Presence presence = new Presence(Presence.Type.available); connection.sendStanza(presence); return messageList; }返回的list就是离线message。
这里要注意一下,
接下来我就开始介绍下花名册的操作
花名册顾名思义,就是好友的意思,我们可以通过花名册获取好友的信息,获取花名册的代码如下:
private Roster friendRoster = null;/** * 初始化花名册 */ public Roster getFriendRoster(){ if(friendRoster == null){ friendRoster = Roster.getInstanceFor(connection); } return friendRoster; } /** * 获取好友账号实体 */ public List<RosterEntry> getFriendEntity(){ Set<RosterEntry> set = getFriendRoster().getEntries(); List<RosterEntry> list = new ArrayList<RosterEntry>(); list.addAll(set); return list; }返回的list就是好友账号实体。
对于点对点单聊来说坑比较少,只要服务器不出问题基本上不会有什么问题。
下节就专门讲解群聊的一些操作,如创建群里、邀请以及发起消息、群消息监听、查看群员、退出群聊等...
阅读全文
0 0
- Smack4.20实现接收离线消息与花名册操作(3)
- iOS容联离线消息接收实现
- Smack4.20实现单聊通讯与监听(2)
- iOS容联-云通讯 离线消息接收实现 推送
- Smack4.20实现连接登陆(1)
- Smack4.20实现群聊(4)
- IOS端 XMPP离线消息的接收
- WCF服务离线操作与消息队列MSMQ
- (6)WCF服务离线操作与消息队列MSMQ
- 定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- VC自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- 剑指offer(java实现)(1-->11)
- 适配器模式
- 初学Android之飞机大战(一)——游戏菜单
- BZOJ 4031([HEOI2015]小Z的房间-矩阵树定理+辗转相除)
- 深入理解Spring Redis的使用 (七)、Spring Redis 使用 jackson序列化 以及 BaseDao代码
- Smack4.20实现接收离线消息与花名册操作(3)
- BZOJ 4596([Shoi2016]黑暗前的幻想乡-矩阵树定理+容斥)
- UML类图详解
- 字符串
- 【C#
- 尝试docker (二)
- 深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存
- 全民飞机大战界面
- JavaSE-设计模式-三种工厂模式-比较区分