iOS:XMPP重新连接旧学校SSL连接

XMPPFramework为“意外断开连接”提供名为XMPPReconnect的扩展,并自动重新连接流.

这适用于正常连接的设置:

[xmppStream connect:&error]
[xmppStream setHostPort:5222];
allowSelfSignedCertificates = NO;
allowSSLHostNameMismatch = NO;

但不适用于此Old School SSL连接:

[xmppStream oldSchoolSecureConnect:&error]
[xmppStream setHostPort:5223];
allowSelfSignedCertificates = YES;
allowSSLHostNameMismatch = YES;

错误的libxmlErrorDomain作为错误代码4,描述文档为空,被连续抛出,

有时,错误GCDAsyncSocketErrorDomain作为错误代码4与描述读取操作超时也被抛出.

请建议我让XMPPReconnect在Old School SSL连接上工作的方法.

附: XMPP服务器是openfire和用于身份验证的PLAIN机制.

最佳答案 我不认为XMPPFramework的重新连接扩展知道旧学校的ssl连接.恕我直言,你将不得不修改’XMPPReconnect.m’函数’maybeAttemptReconnectWithReachabilityFlags:’做类似的事情:

if(self.usesLegacyConnect) 
   [xmppStream oldSchoolSecureConnect:nil];
} else {
   [xmppStream connect:nil];
}
点赞