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];
}