AsyncSocket TLS HOWTO

Я новичок в AsyncSocket, и я отчаянно пытаюсь подключить его к серверу чата Facebook (chat.facebook.com) через порт 5222 (xmpp), и он делает это очень хорошо. Раньше он работал нормально, пока facebook не переключился на безопасные сокеты.

Теперь сервер говорит мне запустить-tls, поэтому я вызываю [socket startTLS: nil], и он ничего не делает. любая попытка записи в сокет впоследствии ни к чему не приводит. Сервер перестанет отвечать, я не уверен, что я делаю неправильно.

-(void)startTLS:(id)_void
{

    NSLog(@"********* StartTLS");  
    // Configure SSL/TLS settings

    NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:4];

    [settings setObject:host forKey:(NSString *)kCFStreamSSLPeerName];

    // Allow expired certificates
    [settings setObject:[NSNumber numberWithBool:YES]
                 forKey:(NSString *)kCFStreamSSLAllowsExpiredCertificates];
    //  
    // Allow self-signed certificates
    [settings setObject:[NSNumber numberWithBool:YES]
                 forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];
    //  
    // In fact, don't even validate the certificate chain
    [settings setObject:[NSNumber numberWithBool:NO]
                 forKey:(NSString *)kCFStreamSSLValidatesCertificateChain];


    [socket startTLS:settings];  
}

может ли кто-нибудь с опытом работы с AsyncSocket попытаться подключиться к серверу и сказать мне, что я делаю неправильно?

Спасибо за вашу помощь


person Moshe Marciano    schedule 07.11.2011    source источник


Ответы (1)


Возможно, вы захотите взглянуть на реализацию XMPPFramework, она использует AsyncSocket (тот же автор) для XMPP и работает с чатом Facebook.

person Eric    schedule 15.02.2012