Openfire 好友状态的发送(用户登录)
2011-10-21 18:01
267 查看
客户端在登录 Openfire 时都会收到自己订阅的好友状态,那么这个好友状态是怎么下发下去的呢?
用户在登录后会发送一个<presence> 来更新自己的状态,在PresenceRouter 中进行处理。
这个presence 交由PresenceUpdateHandler 处理,在判断用户为注册用户后使用RosterManager.getRoster() 来获取所有已经订阅的其他用户。
针对每个用户判断关系类型,如果为SUB_FROM,SUB_BOTH 则说明此用户为订阅了自己的。
先向订阅了自己的用户广播状态更新消息。调用initSesion(),从中取出SUB关糸为SUB_TO 和 SUB_BOTH的,调用PresenceManagerImpl 中的probPresence() 方法来处理每个被订阅者。probPresence()通过sessionManager获取每个用户的在线情况,组装presence并发送给登录用户。
用户在登录后会发送一个<presence> 来更新自己的状态,在PresenceRouter 中进行处理。
这个presence 交由PresenceUpdateHandler 处理,在判断用户为注册用户后使用RosterManager.getRoster() 来获取所有已经订阅的其他用户。
针对每个用户判断关系类型,如果为SUB_FROM,SUB_BOTH 则说明此用户为订阅了自己的。
先向订阅了自己的用户广播状态更新消息。调用initSesion(),从中取出SUB关糸为SUB_TO 和 SUB_BOTH的,调用PresenceManagerImpl 中的probPresence() 方法来处理每个被订阅者。probPresence()通过sessionManager获取每个用户的在线情况,组装presence并发送给登录用户。
相关文章推荐
- Openfire 好友状态的发送(用户登录)
- java在线聊天项目1.3版设计好友列表框功能补充,因只要用户登录就发送一串新列表,导致不同客户端好友列表不同问题
- Volley获取和发送sessionid保持用户登录状态
- openfire 后台用户登录认证代码解析
- OpenFire源码学习之五:用户登录
- ASP.NET专题研究——用户登录、注册和发送密码
- 记录用户 4000 登录状态,避免重复登录SharedPreferences
- django用户登录,是否记住用户登录状态的session实现
- nodejs基础教程-简单blog(5)-cookie保存用户登录状态
- 用户登录验证码60秒后发送短信
- Shell脚本实现检查服务器安全状态(用户、登录IP、防火墙检查)
- 关于用户登录状态存session,cookie还是数据库或者memcache的优劣
- iOS XMPP实现单例用户登录,用户注册,添加好友,删除好友....
- 如何解决每次向后台发起请求时判断用户是否处于登录状态?
- Django 简易实现用户保持登录状态2月
- php 依据session与cookie用户登录状态操作类
- Flask学习总结笔记(9) -- 利用Flask-Login维护用户登录状态
- [转载]C#开发Winform记录用户登录状态的方法
- ASP.NET MVC 使用Filter过滤器 验证用户登录状态
- session--保持登录20分钟,常用与用户登录状态