Ну, может быть, не со всеми 4 вещами, но вот моя ситуация:
У меня есть бэкэнд ActiveMQ (работает на моем настольном Mac). Это стандартный сервер Apache ActiveMQ, который у меня есть, который я в основном использую в качестве эхо-сервера для отслеживания логов и отладки моего клиента. Клиент представляет собой проект iPhone со взломанной реализацией Stomp.framework с использованием AsyncSocket.
Мне нужно использовать библиотеку AsyncSocket Cocoa для общения с сервером Stomp, на котором я более или менее работаю. Я могу отправлять сообщения в очереди и читать их обратно, так что я думаю, что мне там хорошо.
НО, когда я пытаюсь настроить все на использование SSL (также требование), я получаю следующее описание ошибки из объекта NSError, который я получаю:
kCFStreamErrorDomainSSL error -9812.
Я не могу на всю жизнь понять, что это за код ошибки. У кого-нибудь есть подсказка?
Вот как я могу настроить SSL для AsyncSocket:
РЕДАКТИРОВАТЬ: ДОБАВЛЕН ПРАВИЛЬНЫЙ КОД ЗДЕСЬ. ПРИМЕЧАНИЕ СЕРТИФИКАТЫ.
//- (BOOL)onSocketWillConnect:(AsyncSocket *)sock
{
// Connecting to a secure server
NSMutableDictionary * settings = [NSMutableDictionary dictionaryWithCapacity:2];
// Use the highest possible security
[settings setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL
forKey:(NSString *)kCFStreamSSLLevel];
// Allow self-signed certificates
[settings setObject:[NSNumber numberWithBool:YES]
forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];
CFReadStreamSetProperty([sock getCFReadStream],
kCFStreamPropertySSLSettings, (CFDictionaryRef)settings);
CFWriteStreamSetProperty([sock getCFWriteStream],
kCFStreamPropertySSLSettings, (CFDictionaryRef)settings);
return YES;
}
У кого-нибудь есть идеи? Я думаю Я правильно устанавливаю свойства потока. Может быть, это как-то связано с настройкой ActiveMQ? Я не делал никаких настроек, кроме как включить протокол SSL через Stomp в ActiveMQ. У меня нет сертификата или чего-то в этом роде. Может в этом проблема?
Любое понимание приветствуется!