繁体   English   中英

无法在XMPP聊天应用程序中注册用户

[英]Unable to register user in xmpp chat app

我想在我的iOS应用程序中实现XMPP框架,我已经完成了(与其他用户聊天,显示其他用户的存在等)中的所有内容。

但是问题是,我无法从我的App中注册新用户。 我为此使用以下代码,

if ([appDel.xmppStream supportsInBandRegistration])
    [appDel.xmppStream registerWithPassword:txt_Password.text error:nil];

但是,为此,supportsInBandRegistration方法始终返回NO,并且我不会调用该方法never registerWithPassword:。

如果有可用的解决方案,请帮助我

您正在使用什么服务器? 某些服务器甚至支持未按规定发送带流注册功能,即XEP-0077规定的功能。 但是,大多数人应该在迪斯科结果中赋予该功能。

----或----您可以通过以下代码解决此问题。 对我来说很好。

- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate: 
(NSXMLElement *)error; 
{ 
NSLog(@"Did not authenticate"); 

 [xmppStream registerWithPassword:[[NSUserDefaults 
standardUserDefaults] stringForKey:@"userPassword"] error:nil]; 

NSError * err = nil; 

if(![[self xmppStream] registerWithPassword:password error:&err]) 
{ 
    NSLog(@"Error registering: %@", err); 
} 

} 
- (void)xmppStreamDidRegister:(XMPPStream *)sender{ 

NSLog(@"I'm in register method"); 

    } 

- (void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement 
*)error{ 
NSLog(@"Sorry the registration is failed"); 

} 

我在didNotAuthenticate:方法中声明了registerWithPassword:error:方法,因为在连接到服务器后,它将通过我的注册方法正常工作的地方转到此didNotAuthenticate方法

我有一个相同的问题,即[xmppStream supportsInBandRegistration]方法返回false,因为我正在传递已经在服务器中注册的[xmppStream supportsInBandRegistration]

[xmppStream setMyJID:[XMPPJID jidWithString:jabberID]];

更改JID对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM