在 iOS 中使用 XMPP 从 Groupchat/Room 中退出特定成员/所有者
Posted
技术标签:
【中文标题】在 iOS 中使用 XMPP 从 Groupchat/Room 中退出特定成员/所有者【英文标题】:Exit Particular member/owner from Groupchat/Room using XMPP in iOS 【发布时间】:2017-03-06 12:04:49 【问题描述】:目前我正在制作聊天应用程序。
我将像 Whats 应用一样实现群聊退出。
例如, 我是群组所有者,一段时间后我将离开群组。在我离开群组后,群组的任何一位成员都指定为群组所有者。
为此我应用了以下代码:
首先获取群聊中的所有成员,然后所有成员手动离开群聊,但它也不起作用。
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"http://jabber.org/protocol/muc#admin"];
NSXMLElement *item = [NSXMLElement elementWithName:@"item"];
[item addAttributeWithName:@"affiliation" stringValue:@"member"];
[item addAttributeWithName:@"jid" stringValue:@"jid to remove"];
[query addChild:item];
XMPPIQ *RemoveUser = [[XMPPIQ alloc] initWithType:@"set" to:[XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",dialuser2,kSIPDomain]] elementID:@"some random id" child:query];
[SharedAppDelegate.xmppStream sendElement:RemoveUser];
所以任何人都有代码或相关信息,请帮助我。
谢谢。
【问题讨论】:
【参考方案1】:我认为您需要将 affiliation
设置为 owner
而不是 member
。
如Xmpp Owner Usecases、Xmpp Admin Usecases 描述(注意affiliation
的值):
<iq from='crone1@shakespeare.lit/desktop'
id='owner1'
to='coven@chat.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='owner'
jid='hecate@shakespeare.lit'>
<reason>A worthy witch indeed!</reason>
</item>
</query>
</iq>
<iq from='crone1@shakespeare.lit/desktop'
id='member2'
to='coven@chat.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='none'
jid='hag66@shakespeare.lit'>
<reason>Not so worthy after all!</reason>
</item>
</query>
</iq>
<iq from='kinghenryv@shakespeare.lit/throne' id='ban1' to='southampton@chat.shakespeare.lit' type='set'>
<query xmlns='http://jabber.org/protocol/muc#admin'>
<item affiliation='outcast'
jid='earlofcambridge@shakespeare.lit'>
<reason>Treason</reason>
</item>
</query>
</iq>
【讨论】:
是的,如果我是该组的管理员,它可以工作,但如果我不是该组的管理员并且想要从组中删除或退出,那么我该怎么做? @KaushikMovaliya 您找到解决问题的方法了吗?我也面临同样的问题。 没有@nikBhosale,还没有以上是关于在 iOS 中使用 XMPP 从 Groupchat/Room 中退出特定成员/所有者的主要内容,如果未能解决你的问题,请参考以下文章
无法从 NSMutableDictionary iOS 应用程序中检索 XMPP JID。