AsyncSocket TLS HOWTO - PullRequest
       28

AsyncSocket TLS HOWTO

4 голосов
/ 07 ноября 2011

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

Теперь сервер сообщает мне start-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 попытаться подключиться к серверу и сказать, что я делаю не так?

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

1 Ответ

0 голосов
/ 16 февраля 2012

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

...