Iphone 异步套接字TLS HOWTO

Iphone 异步套接字TLS HOWTO,iphone,objective-c,asyncsocket,cocoaasyncsocket,Iphone,Objective C,Asyncsocket,Cocoaasyncsocket,我对AsyncSocket还很陌生,我正在拼命尝试让它在端口5222(xmpp)上连接到Facebook聊天服务器(chat.Facebook.com),它做得非常好。在facebook切换到安全套接字之前,它曾经工作得很好 现在服务器告诉我启动tls,所以我调用[socket startTLS:nil],它什么也不做。之后任何对套接字的写入尝试都不会导致任何结果。服务器将停止响应,我不确定我做错了什么 -(void)startTLS:(id)_void { NSLog(@"*****

我对AsyncSocket还很陌生,我正在拼命尝试让它在端口5222(xmpp)上连接到Facebook聊天服务器(chat.Facebook.com),它做得非常好。在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经验的人都可以尝试连接到服务器并告诉我我做错了什么


感谢您的帮助

您可能想看看这个实现,它对XMPP使用AsyncSocket(也是同一个作者)并与Facebook聊天一起工作