如何获取多用户聊天昵称的 Jabber ID
Posted
技术标签:
【中文标题】如何获取多用户聊天昵称的 Jabber ID【英文标题】:How to get the Jabber ID for a Multi User Chat nick 【发布时间】:2010-03-21 12:18:31 【问题描述】:我正在尝试在多用户聊天中获取昵称的 Jabber ID,但以下代码仅返回 null:
class JabberMUCMessageListenerAdapter implements PacketListener
private final MultiUserChat muc;
public JabberMUCMessageListenerAdapter(MultiUserChat muc)
this.muc = muc;
@Override
public void processPacket(Packet p)
if (p instanceof Message)
final Message msg = (Message) p;
String jid = muc.getOccupant(msg.getFrom()).getJid(); // returns null
...
有谁知道,我做错了什么?
【问题讨论】:
您想获得 real JabberID 还是“本地”(例如 room@muc.example.com/nick)? 我认为这是“真实”ID(什么是“本地”ID)?实际上,我发现自己做错了什么:会议室的配置是这样的,只有主持人才能看到真实的 ID。不知道这是否是“匿名”会议室的代名词。 【参考方案1】:http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smackx/muc/Occupant.html
完整的 JID 和昵称是可选的。
【讨论】:
“如果此信息是从存在中提取的并且房间是半匿名或完全匿名的,那么答案将为空。”第一部分是真的,但我不认为房间是匿名的(如果是的话,我怎么找到它?)使用 Pidgin 我可以访问 JID,所以也必须有一种使用 Smack 的方法,必须不是吗?以上是关于如何获取多用户聊天昵称的 Jabber ID的主要内容,如果未能解决你的问题,请参考以下文章