AsyncSocket TLS HOWTO
Posted
技术标签:
【中文标题】AsyncSocket TLS HOWTO【英文标题】: 【发布时间】:2011-11-07 10:07:11 【问题描述】:我对 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 经验的人都可以尝试连接到服务器并告诉我我做错了什么吗?
感谢您的帮助
【问题讨论】:
【参考方案1】:您可能想看看 XMPPFramework 实现,它使用 AsyncSocket(也是同一作者)用于 XMPP 并与 Facebook 聊天一起使用。
【讨论】:
以上是关于AsyncSocket TLS HOWTO的主要内容,如果未能解决你的问题,请参考以下文章