4

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);
}

あなたが私を助けてくれることを願っています!

4

4 に答える 4

0
/**
 * 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]
于 2013-06-14T07:39:55.850 に答える
0

それは遅い答えですが、それでも私のような新しい開発者にとっては: 登録前に匿名でログインする必要があります: たとえば、yourname@yourserver でログインし、パスワードは unknown@yourserver でログインしようとし、パスワードには何も入力しません。したがって、ストリームは接続されますが、認証は行われません。これは登録に必要です。ストリームは接続されている必要がありますが、認証されていません。

于 2014-11-15T22:00:12.593 に答える