iOS XMPPFramework registerWithPassword 错误
Posted
技术标签:
【中文标题】iOS XMPPFramework registerWithPassword 错误【英文标题】:iOS XMPPFramework registerWithPassword ERROR 【发布时间】:2012-09-08 19:16:47 【问题描述】:我遇到了适用于 ios 的 XMPP 框架的问题。每次我触发registerWithPassword
方法时都会出现错误:
"Error Domain=XMPPStreamErrorDomain Code=1"请等到 流已连接。” UserInfo=0xad7c300 NSLocalizedDescription=请等待,直到流连接。 "
我在我的代码中执行以下步骤:
-(void)createUserWithUsername:(NSString*)name andPW:(NSString*)pw
[self setupStream];
NSLog(@"name: %@ ",name);
NSString *nameFor = name;
[self disconnect];
NSString *jidBenutzer = [NSString stringWithFormat:@"%@@my-Server.com",nameFor];
NSError *error = nil;
NSError * err = nil;
NSLog(@"jabberid : %@",jidBenutzer);
XMPPJID *jid = [XMPPJID jidWithString:jidBenutzer];
self.xmppStream.myJID = jid;
[[self xmppStream] registerWithPassword:pw error:&err];
NSLog(@"Connection: %@",error);
NSLog(@"Register: %@",err);
我希望你能帮助我!
【问题讨论】:
从错误描述:请等到流连接 - 我猜你正在尝试登录,但没有连接。您确定您的连接正常吗? 嘿,如果我直接在服务器上使用用户名注册用户,然后在我的应用程序中使用用户名和密码,则连接有效。 @rollerückwärts 你找到解决办法了吗? 【参考方案1】:从您的示例代码中,我没有看到任何调用:
[xmppStream connect:&error]
从报错信息来看,你实际上是没有连接的。
确保您正确调用连接方法并相应地处理错误。
【讨论】:
嘿,我无法将xmpp
连接到openfire
。你是怎么连接的?你能帮我做这件事吗?我一直在寻找这个一周,但没有得到任何解决方案。请帮助代码sn-p。我也在 1 周前发布了问题。请在此处查看我的代码。 ***.com/questions/26750301/…【参考方案2】:
/**
* This method attempts to register a new user on the server using the given username and password.
* The result of this action will be returned via the delegate methods.
*
* If the XMPPStream is not connected, or the server doesn't support in-band registration, this method does nothing.
**/
这是下面。
- (BOOL)registerWithPassword:(NSString *)password error:(NSError **)errPtr
方法的说明。你会发现在使用这个方法之前,你必须连接服务器。
我在下面找不到。
[xmppStream connect:&error]
我用这个。
NSError *error;
NSString *tjid = [[NSString alloc] initWithFormat:@"anonymous@%@", serverName];
isRegister = YES;
[xmppStream setMyJID:[XMPPJID jidWithString:tjid]];
[xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]
【讨论】:
【参考方案3】:请确保您的 openfire 服务器已从您的系统偏好设置中打开。
【讨论】:
【参考方案4】:这是一个迟到的答案,但对于像我这样的任何新开发人员来说仍然是:您必须在注册之前匿名登录:例如,您使用 yourname@yourserver 登录,您的密码尝试使用 unknown@yourserver 登录,而密码则什么都不输入。所以它将连接流但不会验证这是注册所必需的。 流应已连接但未经过身份验证。
【讨论】:
以上是关于iOS XMPPFramework registerWithPassword 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在目标c中通过ios中的XMPPFramework连接XMPP服务器
iOS XMPPFramework registerWithPassword 错误