xmpp中怎么样取好友状态

为了把状态变更发为博客文章,需要知道好友状态。

监视了一下来往的xml,选中了presence回调方法。

监视很简单:

j.add_xml_callback do |x|
debug_log("xml: #{x}")
false
end


注意最后要返回false,这样就表示允许后面的回调处理,比如message, presence之类的。

加入presence的回调

j.add_presence_callback do |presence|
begin
#Robot.debug_log("presence: #{presence}")
if presence!=nil && presence.from!=nil && presence.status!=nil && !presence.status.empty?
email=Robot.split_email(presence.from)
process_status(presence.status,email)
end
rescue => detail
Robot.exception_log("process status error:",detail)
end
end


回调的参数非常简单就是一个对象presence, 是这个类:Jabber::Presence。具体参见:[url]http://home.gna.org/xmpp4r/rdoc/classes/Jabber/Presence.html[/url]

里面的status属性就是好友发来的状态文本。

当然要处理的过程中要比较一下是否与原来的状态不同,另外忽略掉空状态,有些客户端是不发送状态的。

使用xmpp4r,已经在gtalk和openfire里试过了,可以正常使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值