【问题标题】:Cant fetch detail of XMPPRoom from the server XMPP Framework无法从服务器 XMPP 框架中获取 XMPPRoom 的详细信息
【发布时间】:2014-03-07 14:05:32
【问题描述】:

我创建了一个仅限会员的永久房间。我邀请了多名住户。 现在我想为创建者邀请的用户获取房间的详细信息。

我试过这段代码:

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>

谁能帮我解决我做错了什么。

提前致谢。

【问题讨论】:

  • 少量更正,我什至没有得到公共房间的细节。如果 nonOwner 按照我建议的方式访问详细信息,他将无法获取详细信息。请指导。
  • 查看答案中的前两个部分:XMPPFramework - Implement Group Chat (MUC)

标签: ios objective-c xmpp xmppframework


【解决方案1】:

如果您想获取房间信息,可以拨打XMPPRoom的方法

- (void)fetchConfigurationForm;

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

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

【讨论】:

  • 嗨,Dee,感谢您的回复。但我已经做到了。我尝试通过 fetchConfigurationForm 获取 roomDetail,但出现错误。 (调用了didNotFetchConfigurationForm 委托方法并且iq 类型为错误)。我认为问题在于角色、从属关系、特权。您是否知道需要为受邀用户分配什么类型的角色、隶属关系和权限,通过这些我将调用相同的 fetchConfigurationForm 方法获取房间详细信息。
  • 请阅读文档!XEP-0045
  • 嘿,@NileshTripathi,我认为您在获取配置时遇到错误,因为您没有加入房间(这是我目前的情况)无需加入房间即可获取详细信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
相关资源
最近更新 更多