2014-04-16 1 views
0

XMPPFrameworkrobbiehanson으로 구현하려고합니다. 나는 이미 내가 인터넷 (XMPPPing 등)에서 찾을 수 있지만, 아무것도 내 문제를 해결할 수 없었다 모든 노력을XMPPFramework 원격 피어가 소켓을 닫음

Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo=0x9517440 {NSLocalizedDescription=Socket closed by remote peer} 

: 문제는 내가 다음과 같은 오류 메시지가 있다는 것입니다. 사용중인 코드는 다음과 같습니다.

- (void)connect { 
    stream = [[XMPPStream alloc] init]; 
    [stream setEnableBackgroundingSocket:YES]; 
    [stream addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

    reconnect = [[XMPPReconnect alloc] init]; 
    [reconnect activate:stream]; 

    [stream setHostName:_hostName]; 
    [stream setPort:5223]; 

    [stream setMyJID:[XMPPJID jidWithString:_username]; 

    NSError *e; 
    if(![stream connectWithTimeout:20 error:&e]) { 
     NSLog(@"%@", e); 
    } 

    - (void)xmppStreamDidConnect:(XMPPStream *)sender { 
     NSError *e; 
     [sender authenticateWithPassword:_password]; 

     if(e) { 
      NSLog(@"%@", e); 
     } 
    } 

몇 초가 지나면이 오류 메시지가 즉시 표시됩니다. 나는 우리 서버가 SSL을 필요로하기 때문에 이미 그럴 것이라고 생각했지만, SSL을 위해 발견 한 유일한 해결책은 [stream secureConnection:nil];이며 이것이 연결된 경우에만 작동합니다.

나는 또한 -xmppStreamDidConnect: 대리자 메서드를 얻지 못합니다.

답변

1

stream oldSchoolSecureConnectWithTimeout:은 5223/SSL에 연결합니다.

+0

Great! 매력처럼 작동합니다. 감사합니다! –

+2

동일한 문제가 발생하여이 오류가 발생했습니다 :'Error Domain = kCFStreamErrorDomainSSL Code = -9847 "(null)"UserInfo = {NSLocalizedRecoverySuggestion = 오류 코드 정의는 Apple의 SecureTransport.h에서 찾을 수 있습니다.}' . 나는 무엇을 잘못 했는가? –