XMPPFramework Socket由远程对等方关闭

时间:2014-04-16 12:32:34

标签: ios ssl ios7 xmpp xmppframework

我试图通过XMPPFramework实施robbiehanson。问题是,我收到以下错误消息:

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

我已经尝试过在互联网上找到的所有内容(XMPPPing等),但没有什么能解决我的问题。以下是我使用的代码:

- (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,但我找到的唯一解决方案是运行[stream secureConnection:nil];,这只有在连接时才有效。

我也从未获得-xmppStreamDidConnect:委托方法。

1 个答案:

答案 0 :(得分:1)

stream oldSchoolSecureConnectWithTimeout:将连接到5223 / SSL