Java 在XMPP客户端中更改传出状态节
我正在使用SmackAPI for Java连接到ejabberd和gtalk服务器。我可以连接和登录良好,但我想做一个小的修改 如何更改登录用户的状态节 例如,给定小节:Java 在XMPP客户端中更改传出状态节,java,xmpp,smack,Java,Xmpp,Smack,我正在使用SmackAPI for Java连接到ejabberd和gtalk服务器。我可以连接和登录良好,但我想做一个小的修改 如何更改登录用户的状态节 例如,给定小节: <presence to="someone@someServer.com/androidd5a3arer3" from="me@someServer.com/Smack"> <status></status> <priority>24</priorit
<presence to="someone@someServer.com/androidd5a3arer3"
from="me@someServer.com/Smack">
<status></status>
<priority>24</priority>
<show>away</show>
<c xmlns="http://jabber.org/protocol/caps"></c>
<x xmlns="vcard-temp:x:update">
<photo>asefe3a33e</photo>
</x>
</presence>
24
离开
asefe3a33e
在将数据包发送给其他人之前,我想添加一个新字段,如下所示:
<presence to="someone@someServer.com/androidd5a3arer3"
from="me@someServer.com/Smack">
<status></status>
<priority>24</priority>
<show>away</show>
<c xmlns="http://jabber.org/protocol/caps"></c>
<x xmlns="vcard-temp:x:update">
<photo>asefe3a33e</photo>
</x>
<NEW_FIELD> NEW STUFF HERE </NEW_FIELD>
</presence>
24
离开
asefe3a33e
这里有新东西
任何帮助都将不胜感激 在XMPPConnection上调用addPacketInterceptor:
connection.addPacketInterceptor(new PacketInterceptor() {
public void interceptPacket(Packet packet) {
// modify packet
}
}, new PacketTypeFilter(Presence.class));
addPacketInterceptor的名称为:
在此连接中注册数据包拦截器。每次通过此连接发送数据包时,都会调用拦截器。拦截器可以修改要发送的数据包。数据包过滤器确定哪些数据包将被发送到拦截器
非常感谢。这正是我需要的!