认识smack中的基本对象 - Presence对象
来源:互联网 发布:文件数据库 nosql 编辑:程序博客网 时间:2024/05/04 06:39
一 Presence对象介绍
与IQ一样,Presence也是继承自XMPP的基类Packet信息包,Presence主要有两个用途:1)告诉服务器所有客户端当前所处的状态,2)发出添加/删除好友请求;每个Presence信息包都有一个类型属性Presence.Type,如下:
- available: 表示处于在线状态
- unavailable: 表示处于离线状态
- subscribe: 表示发出添加好友的申请
- unsubscribe: 表示发出删除好友的申请
- unsubscribed: 表示拒绝添加对方为好友
- error: 表示presence信息报中包含了一个错误消息。
除了类型信息外,Presence还包含其他一些可选的属性:
- Status: 用于表示用户状态的自定义文本,例如:外出吃饭
- Priority: 一个表示发送者资源优先级的非负数(我尚未搞明白什么是发送者资源)
- Mode: 表示五种状态之一:在线(默认)、聊天、离开、xa (extended away)、请勿打扰
二 用法示例
下面的示例表示向服务器发送一个邀请加入好友的Presence信息包的代码段:
Presence subscription = new Presence(Presence.Type.subscribe);subscription.setTo(packet.getFrom());ConnectionUtils.getConnection().sendPacket(subscription);
三 方法汇总
isAvailable
public boolean isAvailable()
如果用户在线,返回true,反之,返回false;另外,如果对方的presence信息包中如果包含添加好友的申请,也会返回false。fai方法等价于getType()==Presence.Type.available。需要注意,当用户状态为在线时,其Presence信息包中的Mode属性值还是有可能为以下几种模式:离开(
away
),extended away
或者请勿打扰(do not disturb
).返回值:在线状态的布尔值
isAway
public boolean isAway()
- Returns true if the presence type is
available
and the presence mode isaway
,extended away
, ordo not disturb
. False will be returned when the type or mode is any other value, including when the presence type is unavailable (offline). This is a convenience method equivalent totype == Type.available && (mode == Mode.away || mode == Mode.xa || mode == Mode.dnd). - Returns:
- true if the presence type is available and the presence mode is away, xa, or dnd.
getType
public Presence.Type getType()
- Returns the type of this presence packet.
- Returns:
- the type of the presence packet.
setType
public void setType(Presence.Type type)
- Sets the type of the presence packet.
- Parameters:
type
- the type of the presence packet.
getStatus
public String getStatus()
- Returns the status message of the presence update, ornull if there is not a status. The status is free-form text describing a user's presence (i.e., "gone to lunch").
- Returns:
- the status message.
setStatus
public void setStatus(String status)
- Sets the status message of the presence update. The status is free-form text describing a user's presence (i.e., "gone to lunch").
- Parameters:
status
- the status message.
getPriority
public int getPriority()
- Returns the priority of the presence, or Integer.MIN_VALUE if no priority has been set.
- Returns:
- the priority.
setPriority
public void setPriority(int priority)
- Sets the priority of the presence. The valid range is -128 through 128.
- Parameters:
priority
- the priority of the presence.- Throws:
IllegalArgumentException
- if the priority is outside the valid range.
getMode
public Presence.Mode getMode()
- Returns the mode of the presence update, or null if the mode is not set. A null presence mode value is interpreted to be the same thing as
Presence.Mode.available
. - Returns:
- the mode.
setMode
public void setMode(Presence.Mode mode)
- Sets the mode of the presence update. A null presence mode value is interpreted to be the same thing as
Presence.Mode.available
. - Parameters:
mode
- the mode.
setLanguage
public void setLanguage(String language)
- Sets the xml:lang of this Presence.
- Parameters:
language
- the xml:lang of this Presence.- Since:
- 3.0.2
toXML
public String toXML()
- Description copied from class:
Packet
- Returns the packet as XML. Every concrete extension of Packet must implement this method. In addition to writing out packet-specific data, every sub-class should also write out the error and the extensions data if they are defined.
- Specified by:
toXML
in classPacket
- Returns:
- the XML format of the packet as a String.
toString
public String toString()
- Overrides:
toString
in classObject
- 认识smack中的基本对象 - Presence对象
- 认识smack中的基本对象 - Presence对象
- 认识smack中的基本对象
- 认识smack中的基本对象 - PacketCollector对象
- 认识smack中的基本对象 - Roster对象
- 认识smack中的基本对象 - Roster对象
- 认识smack中的基本对象-Packet
- 认识smack中的基本对象-IQ
- 认识smack中的基本对象 - Registration
- 认识smack中的基本对象 - 接口PacketFilter
- 认识smack中的基本对象 - 接口PacketFilter
- 认识smack中的基本对象 - Registration
- 认识smack中的基本对象-Packet
- 认识smack中的基本对象 - Registration
- 认识smack3.0.4基本对象 - Presence
- C#面向对象基本认识
- 认识Javascript中的Document对象
- JavaScript中的基本对象
- 网络游戏外挂种类
- [PLL][PM]锁相环模拟相位解调
- insertion sort
- HDU1060--Leftmost Digit
- 机器学习_hadoop + python
- 认识smack中的基本对象 - Presence对象
- distributed cache systems summary
- Appium_在Windows平台上安装Node.js及NPM模块管理
- 数学专项matrix:UVa 11551
- 42U机柜
- VMware下CentOS网络配置
- Linux服务器关闭SeLinux的方法
- 不采用strcpy库函数,完成字符串的拷贝。 strcpy(char *dest, char *src)
- Linux不为人知的12大内幕