有一种方法可以根据文档在聊天室中获取用户的昵称(roomName@domain.com/nick),但是如何获取用户的真实jid(name@domain.com/resource_name)?是否可以根据 XMPP 协议?
问问题
478 次
1 回答
2
你可以,除非房间是匿名的。Jabber 协议使聊天室中的人可能是匿名的成为可能,因此您无法返回他们真实的 JID。这也是它在房间内提供私人消息聊天的原因,因此您仍然可以向这样做的人发送私人消息。
我在Bot::Backbone::Service::JabberChat中有一些代码:
# Figure out who sent this message
my $from_user = $room->get_user($xmpp_message->from_nick);
# Prefer the real JID as the username
my $from_username = $from_user->real_jid // $from_user->in_room_jid;
my $from_nickname = $from_user->nick;
有关详细信息,请参阅AnyEvent::XMPP::Ext::MUC::User和AnyEvent::XMPP::Ext::MUC::Room。
于 2012-07-30T18:15:03.210 回答