0

目前我正在制作聊天应用程序。

我将像 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];

所以任何人都有代码或相关信息,请帮助我。

谢谢你。

4

1 回答 1

0

我认为你需要设置affiliationtoowner但不是member

作为Xmpp Owner UsecasesXmpp 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>

于 2017-03-07T17:49:30.700 回答