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