#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或者其餘客戶端程序登陸的時候,使用這樣的域名登陸服 務器是沒有問題的,但在代碼中處理就要特別當心,必定要在服務器的後段,確認域名統一:dom
填本身的domainspa