2012-03-16 2 views
1

문제 : XMPPFramework 및 Openfire Server를 사용하여 iOS 채팅 응용 프로그램을 만들고 있습니다. 그러나 서버에 연결할 수 없습니다. I 그러나 GTalk 또는 Facebook 계정으로 로그인하십시오. 또한 Spark와 같은 다른 Jabber 클라이언트를 사용하여 자체 서버의 계정에 로그인 할 수 있습니다.XMPPFramework - Openfire 서버에 연결할 수 없습니다.

코드 : http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/ 여기

는이 연결 :

- (void)setupStream { 
    xmppStream = [[XMPPStream alloc] init]; 
    [xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()]; 
} 

- (BOOL)connect { 
    [self setupStream]; 

    NSString *jabberID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"]; 
    NSString *myPassword = [[NSUserDefaults standardUserDefaults] stringForKey:@"userPassword"]; 

    if (![xmppStream isDisconnected]) { 
     return YES; 
    } 

    if (jabberID == nil || myPassword == nil) { 
     return NO; 
    } 

    [xmppStream setMyJID:[XMPPJID jidWithString:jabberID]]; 
    password = myPassword; 

    NSError *error = nil; 
    if (![xmppStream connect:&error]) 
    { 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                  message:[NSString stringWithFormat:@"Can't connect to server %@", [error localizedDescription]] 
                  delegate:nil 
                cancelButtonTitle:@"Ok" 
                otherButtonTitles:nil]; 
     [alertView show]; 
     [alertView release]; 

     return NO; 
    } 

    return YES; 
} 

업데이트 3월 19일 : 그것이 그래서 NSError가 채워되지 않습니다 내 코드의 기본은 다음 튜토리얼입니다 오류가 무엇인지 알기가 어렵습니다. 그러나 코드를 통해 디버깅했으며 QueryRecordCallback의 오류가 XMPPSRVResolver 인 것을 발견했습니다. 오류 코드는 -65554입니다. 이것에 대한 구글 후, 나는이를 발견했다 ... kDNSServiceErr_NoSuchRecord = -65554

,

그러나,이 'NoSuchRecord'문제를 해결하는 방법을 아직 확실하지 오전. 또한 OpenFire Server에 로그온하면 OpenFire Server에 도달하지 못한다는 것을 의미합니다.

답변

3

문제는 Openfire 서버가 공개 도메인에없는 것일 수 있습니다. Openfire 서버가 사설 LAN 서버에서 실행된다고 가정하면 글로벌 DNS 레코드가이를 가리킬 수 없습니다.

공개적으로 액세스 할 수있는 도메인에 액세스 할 수있는 경우이 IP를 제공하는 컴퓨터에 Openfire 서버를 설치해보십시오.

XMPPFramework에 대한 설명서를 읽는 것으로부터 문제가 발생하지 않지만 나와 함께했습니다!

관련 문제