4

XMPPFrameworkXMPPReconnect提供了一个名为“意外断开”的扩展,并自动重新连接流。

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

[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与描述的错误Document is empty被连续抛出,

有时,也会抛出带有描述的GCDAsyncSocketErrorDomain错误代码。4Read operation timed out

请建议我在XMPPReconnectOld School SSL 连接上进行工作的方法。

PS XMPP 服务器是openfire身份PLAIN验证机制。

4

1 回答 1

2

我不认为 XMPPFramework 的重新连接扩展知道老式的 ssl 连接。恕我直言,您将不得不修改 'XMPPReconnect.m' 功能 'maybeAttemptReconnectWithReachabilityFlags:' 以执行以下操作:

if(self.usesLegacyConnect) 
   [xmppStream oldSchoolSecureConnect:nil];
} else {
   [xmppStream connect:nil];
}
于 2012-07-22T14:28:25.153 回答