1.先按照协议0077中修改密码的XML修改自己的
{
/*
<iq type=’set’ to=’shakespeare.lit’>
<query xmlns=’jabber:iq:register’>
<username>bill</username>
<password>newpass</password>
</query>
</iq>
*/
stringValue
stringValue
stringValue#define CHANG_PWD_id @"change1"确定id唯一就行
:@"jabber:iq:register"];
[iq addChild:queryElement];
standardUserDefaults
NSXMLElement *username = [NSXMLElementelementWithName:@"username"];
[username setStringValue:userNameStr];
NSXMLElement *password = [NSXMLElementelementWithName:@"password"];
@"self.tfNewPWDSure.text_______:%@"
[password setStringValue:self.tfNewPWDSure.text];
[queryElement addChild:username];
[queryElement addChild:password];
// NSLog(@"iq__%@",iq.description);//打印下XML流检查是否拼接正确
shareInstancesendElement:iq];//发送{XMPPStream被我封装进单例类XMPPService里}
shareInstanceaddDelegatedelegateQueue
}
#pragma make – xmppStream
– (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq{
NSLog(@"__%@",iq.description);
/*
<iq xmlns="jabber:client" type="result" id="change1" from="ubuntu-dev" to="13333333333@ubuntu-dev/870efdcd"></iq>
*/
NSString *iqTypePWD = [[iq attributeForName:@"type"]stringValue];
attributeForNamestringValue];
@"iqTypePWD:%@___iqTypePWD:%@",iqTypePWD,iqIDPWD);
if ([iqTypePWD isEqualToString:@"result"]&&[iqIDPWDisEqualToString:CHANG_PWD_id]) { //进行判断只有type="result" id="change1"时,密码修改成功
@"OpenFire密码修改成功!");
}
returnYES;
}
个人总结:XMPP框架不是万能的,但XML流是万能的,当XMPP无法满足你的需求时,用XML可以轻松搞定!
,累死累活不说,走马观花反而少了真实体验,