目前我正在进行聊天申请。
我将像Whats app一样实现群聊聊天退出。
例如, 我是集团所有人,过了一段时间后我将离开集团。离开集团后,任何一个集团成员都作为集团所有者分配。
为此我申请了以下代码:
首先获取群聊中的所有成员,然后所有成员手动离开群聊,但也无法正常工作。
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];
所以任何人都有代码或相关信息,请帮助我。
谢谢。
答案 0 :(得分:0)
我认为您需要将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>