4

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

感谢您的帮助

4

1 回答 1

0

您可能想看看XMPPFramework实现,它使用 AsyncSocket(也是同一作者)用于 XMPP 并与 Facebook 聊天一起使用。

于 2012-02-15T20:15:40.193 回答