4

XMPPFrameworkXMPPReconnect「偶発的な切断」という名前の拡張機能を提供し、ストリームを自動的に再接続します。

これは、通常の接続の設定でうまく機能します。

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

ただし、このオールドスクール SSL 接続は対象外です。

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

説明付きのエラーlibxmlErrorDomainコードとしてエラーが連続して投げられましたが、4Document is empty

場合によっては、説明付きのGCDAsyncSocketErrorDomainエラー コードとしてエラーがスローされることもあります。4Read operation timed out

XMPPReconnectOld School SSL 接続で機能する方法を教えてください。

PS XMPP サーバーはopenfirePLAIN認証のメカニズムです。

4

1 に答える 1

2

XMPPFramework の Reconnect Extension が古い学校の ssl 接続を認識しているとは思いません。私見では、「XMPPReconnect.m」関数「maybeAttemptReconnectWithReachabilityFlags:」を次のように変更する必要があります。

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