agsXMPP客户端关于好友在线状态的设置及其响应的方法

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

agsXMPP越来越多人用,最近有几个网友都问起如何在agsXMPP的客户端处理好友在线状态的设置以及响应。

agsXMPP里面有2个重要的地方可以设置在线状态:

1.PresenceType.available和PresenceType.unavailable,XMPP官方不推荐使用PresenceType.unavailable来实现隐身,为什么?A用户给B用户(或者所有用户)发送PresenceType.unavailable,那就相当于下线了,根本不能识别是“隐身”还是“下线”,有些偏门的工具喜欢把隐身的用户给显示出来。。。。。。。所以,那就不建议用PresenceType.unavailable咯。

2.ShowType.XXXXX,这个就不用多说了,其本身就是设置多种在线状态的。。。。


下面的代码实现了如何告诉特定好友(用循环就可以多个好友了),自己的在线状态:


下面的代码就实现了如何响应好友发送过来的在线状态:

这两句是判断的关键:

if (pres.Type == PresenceType.available && pres.Show==ShowType.chat)//如果好友上线,并且是chat状态

{}

else if(pres.Type == PresenceType.available && pres.Show==ShowType.away)//如果好友上线,并且是away状态

{}

你可能感兴趣的:(XMPP)