在 Xmpp/Openfire 中从名册中删除一个朋友
Posted
技术标签:
【中文标题】在 Xmpp/Openfire 中从名册中删除一个朋友【英文标题】:Delete a Friend from Roster in Xmpp/Openfire 【发布时间】:2013-01-14 11:26:06 【问题描述】:在我的聊天应用程序中。我正在使用 smack 库,在订阅管理的帮助下,我完成了将朋友添加到特定人的名册的部分。
现在我希望当有人拒绝好友请求时,我向其他用户发送 UNSUBSCRIBE PACKET 相同的内容,该好友不会从其他用户的名册中删除。它只是显示 NONE 订阅。
代码:
Presence unsubscribe = new Presence(Presence.Type.unsubscribe);
unsubscribe.setTo(ABC@ABC.COM);
connection.sendPacket(unsubscribe);
如何从朋友的名册中删除该用户。我可以从 openfire 门户中做到这一点,但不知道如何从代码中做到这一点。
【问题讨论】:
您好,您找到解决方案了吗?我也遇到同样的问题。请救救我 【参考方案1】:来自Smack forum,此代码可能有效:
RosterPacket packet = new RosterPacket();
packet.setType(IQ.Type.SET);
RosterPacket.Item item = new RosterPacket.Item("ABC@ABC.COM", null);
item.setItemType(RosterPacket.ItemType.REMOVE);
packet.addRosterItem(item);
connection.sendPacket(packet);
【讨论】:
【参考方案2】:这段代码对我有用
if(selectedRoster != null)
Presence presence = new Presence(Presence.Type.unsubscribe);
presence.setTo(selectedRoster.getUser());
presence.setStatus("Offline");
presence.setShow("unavailable");
ConnectionController.GetInstance(this).getXMPPConnection().sendPacket(presence);
try
roster.removeEntry(selectedRoster);
catch (XMPPException e)
// TODO Auto-generated catch block
e.printStackTrace();
【讨论】:
以上是关于在 Xmpp/Openfire 中从名册中删除一个朋友的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xmpp openfire 服务器中启用 websockets
如何使用 Smack 在 XMPP openfire 中了解打字状态
如何使用 Smack 在 XMPP openfire 中了解打字状态