ドキュメントによると、チャットルームでユーザーのニックネーム (roomName@domain.com/nick) を取得する方法がありますが、ユーザーの実際の jid (name@domain.com/resource_name) を取得するにはどうすればよいですか? XMPPプロトコルに従って可能ですか?
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 に答える