无法从服务器XMPP Framework获取XMPPRoom的详细信息

时间:2014-03-07 14:05:33

标签: ios objective-c xmpp xmppframework

我创建了一个MembersOnly,Persistant Room。其中我邀请了多位乘客。 现在我想为创建者邀请的用户获取房间的详细信息。

我试过这段代码:

XMPP要求:

<iq from='hag66@shakespeare.lit/pda'
id='ik3vs715'
to='coven@chat.shakespeare.lit'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

从iOS调用iOS代码

NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"http://jabber.org/protocol/disco#info"];//

NSString *iqID = [[appDelegate xmppStream] generateUUID];

XMPPJID *jID = self.room.roomJID;
XMPPIQ *element = [XMPPIQ iqWithType:@"get" to:jID  elementID:iqID child:query];
[element addAttributeWithName:@"from" stringValue:[[[appDelegate xmppStream] myJID] full]];
[[appDelegate xmppStream] fetchInformationForGivenIQ:element];

这应该为我提供这样的结果:

<iq from='coven@chat.shakespeare.lit'
id='ik3vs715'
to='hag66@shakespeare.lit/pda'
type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity
    category='conference'
    name='A Dark Cave'
    type='text'/>
<feature var='http://jabber.org/protocol/muc'/>
<feature var='muc_passwordprotected'/>
<feature var='muc_hidden'/>
<feature var='muc_temporary'/>
<feature var='muc_open'/>
<feature var='muc_unmoderated'/>
<feature var='muc_nonanonymous'/>
</query>
</iq>

但我得到了这个结果:

<iq xmlns="jabber:client" type="result" id="some ID" from="Group-ID" to="My Full JabberID">
<query xmlns="http://jabber.org/protocol/disco#info">
<feature var="http://jabber.org/protocol/disco#info">
</feature>
</query>
</iq>

任何人都可以帮助我解决我的错误。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您想获取房间信息,可以在XMPPRoom

上调用该方法
- (void)fetchConfigurationForm;

然后,在房间的委托方法中获取房间信息

- (void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm;