#pragma mark - 密码错误,身份验证失败- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error { NSLog(@"身份验证失败%@",error); }//<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized></not-authorized></failure>
原因:用户名配置有错
NSString *userName = @"tqhTest"; NSString *hostName = @"127.0.0.1"; //3.设置XMPPStream的JID和主机// [_xmppStream setMyJID:[XMPPJID jidWithString:userName]]; //@127.0.0.1 [_xmppStream setMyJID:[XMPPJID jidWithUser:userName domain:@"127.0.0.1" resource:nil]]; [_xmppStream setHostName:hostName];
其实,XMPP认证的问 题,一般都是与JID有关的,因此解决这类问题,首选的入口就是分析一下XMPPStream的JID,客户端在与服务器连接 后,Socket就绑定了这个端口,用来处理与服务器的往返数据,认证就是其中之一.而且,往往我们在与服务器来连接的时候,为了简便,经常使用 localhost或者127.0.0.1来当做域名的部分,这时候要尤其注意,因为使用Spark或者其他客户端程序登录的时候,使用这样的域名登录服 务器是没有问题的,但在代码中处理就要特别小心,一定要在服务器的后段,确认域名统一:
填自己的domain