假设我有两个 JID:
JID 1:bob@example.com
JID2room@chat.example.com
JID 2 显然指的是器,但器并不总是会有聊天或会议这个词。
有没有办法,使用 Smack 库,告诉哪一个是哪一个?
您无法通过查看 JID 来判断。您必须在给定的协议交换中保留足够的上下文才能知道您正在与之交谈。
通常在启动时,客户端将向服务器发送disco#items
查询:
<iq type='get'
to='shakespeare.lit'
id='items1'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
要查找所有本地服务,请向每个服务发送disco#info
查询以查找有关该服务的更多信息。find a MUC server:
<iq from='chat.shakespeare.lit'
type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<ideny
category='conference'
name='Shakespearean Chat Service'
type='text'/>
<feature var='http://jabber.org/protocol/muc'/>
</query>
</iq>
您知道包含此域名的所有 JID(在上面的示例中为chat.shakespeare.lit
)都与 MUC 房间相关联。
MUC 中的用户 JID 将(应该)在末尾具有用户名,如下所示:
roomname@conference.example.com/username
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(85条)