我对名单包有一个奇怪的问题,我不是aSmack的新手,但我之前从未遇到过这个问题,我的OpenFire服务器显然忽略了这种数据包:
RosterPacket ropack = new RosterPacket();
ropack.setType(IQ.Type.SET);
RosterPacket.Item item = new RosterPacket.Item("admin@reza-hp", null);
item.setItemType(RosterPacket.ItemType.both);
ropack.addRosterItem(item);
try {
MyService.connection.sendPacket(ropack);
} catch (NotConnectedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
并忽略该类型并返回:
iq type="set" id="693-6" to="reza@reza-
hp/Smack" query xmlns="jabber:iq:roster" item jid="admin@reza-hp"
subscription="from"/ /query> /iq
最近我读到服务器必须忽略任何名册项目类型,但是"删除",是吗?如果它是这样我怎么应该接受服务器端的朋友请求?
答案 0 :(得分:0)
名册用于在线订阅。这是它的主要目的。因此,您不应该编辑名单。您应该使用订阅工作流程并要求订阅其他联系人在场(或取消订阅)。
根据在线订阅工作流程,XMPP服务器会关心您将名册项目保持在正确的状态。
供参考,请阅读XMPP规范:https://tools.ietf.org/html/rfc6121#section-3.1