iOS: переподключение XMPP через SSL-соединение Old School

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 с описанием Document is empty был брошен непрерывно,

иногда ошибка GCDAsyncSocketErrorDomain как код ошибки 4 с описанием Read operation timed out также брошен.

Пожалуйста, предложите мне способ сделать XMPPReconnect работать на SSL-соединении Old School.

PS XMPP сервер есть openfire и PLAIN механизм аутентификации.

1 ответ

Я не думаю, что расширение переподключения XMPPFramework знает о ssl-соединении старой школы. ИМХО, вам нужно будет изменить функцию 'XMPPReconnect.m', может быть "AttemptReconnectWithReachabilityFlags: ", чтобы сделать что-то вроде:

if(self.usesLegacyConnect) 
   [xmppStream oldSchoolSecureConnect:nil];
} else {
   [xmppStream connect:nil];
}
Другие вопросы по тегам