Iphone 无法在xmpp聊天应用中注册用户

Iphone 无法在xmpp聊天应用中注册用户,iphone,ios,chat,Iphone,Ios,Chat,我想在我的iOS应用程序中实现XMPP框架,我已经完成了中的所有事情(与其他用户聊天,显示其他用户的存在,等等) 但问题是,我无法从我的应用程序注册新用户。为此,我使用以下代码: if ([appDel.xmppStream supportsInBandRegistration]) [appDel.xmppStream registerWithPassword:txt_Password.text error:nil]; 但是为此,supportsInBandRegistration方法

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

但问题是,我无法从我的应用程序注册新用户。为此,我使用以下代码:

if ([appDel.xmppStream supportsInBandRegistration])
    [appDel.xmppStream registerWithPassword:txt_Password.text error:nil];
但是为此,supportsInBandRegistration方法始终返回NO,并且我不会被调用该方法never registerWithPassword:


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

您使用的是哪台服务器?根据XEP-0077,一些服务器支持带内注册,甚至认为它们没有发送正确的流:功能。然而,他们中的大多数人应该在disco结果中给出该功能

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

- (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"); 

} 
我在中声明registerWithPassword:error:method didNotAuthenticate:方法,因为在连接到服务器之后 是要通过我的
注册方法运行正常

您使用的是哪台服务器?根据XEP-0077,一些服务器支持带内注册,甚至认为它们没有发送正确的流:功能。然而,他们中的大多数人应该在disco结果中给出该功能

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

- (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"); 

} 
我在中声明registerWithPassword:error:method didNotAuthenticate:方法,因为在连接到服务器之后 是要通过我的
注册方法工作正常

我遇到了与
[xmppStream supportsInBandRegistration]
方法返回false相同的问题,因为我传递的是已在服务器中注册的Jid

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

更改JID对我有效。

我遇到了与
[xmppStream supportsInBandRegistration]
方法返回false相同的问题,因为我传递的是已在服务器中注册的JID

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

更改JID对我有效。

我做了同样的事情,但现在我总是得到xmmpStream:didNotRegister:因为xmppStream中的handleRegistration:method总是返回错误。我的jabber服务器有什么问题?调用didNotAuthenticate的原因可能是因为您试图在调用xmppStreamDidConnect时进行身份验证。您应该在调用xmppStreamDidConnect时注册用户,因为在注册期间您无法向服务器进行身份验证。我做了同样的事情,但现在我总是得到xmmpStream:didNotRegister:因为xmppStream中的handleRegistration:方法总是返回错误。我的jabber服务器有什么问题?调用didNotAuthenticate的原因可能是因为您试图在调用xmppStreamDidConnect时进行身份验证。当调用xmppStreamDidConnect时,您应该注册用户,因为在注册过程中您无法向服务器进行身份验证。Hi-Muhammadamirali您在jabberID中设置了什么参数?Hi-Muhammadamirali您在jabberID中设置了什么参数?