Запись невозможна: SSL/TLS с AsyncSocket для iOS

Я работаю с AsyncSocket для iOS. (https://github.com/robbiehanson/CocoaAsyncSocket)

Я написал свой собственный класс для обработки соединения с AsyncSocket. Я написал метод writeDate: (NSString *) data и добавил функции обратного вызова AsyncSocket в свой класс.

-(void)writeData: (NSString*) data
{
    NSString *test = [NSString stringWithFormat:@"test"];
    NSData *raw = [test dataUsingEncoding:NSUTF8StringEncoding];
    [socket writeData:raw withTimeout:-1 tag:1];
}

Соединение работает отлично, и если я пытаюсь отправить сообщение в «didConnectToHost» после [sock startTLS:setting], оно работает.

Но если я попытаюсь отправить сообщение своим методом (writeDate: (NSString *) data) и вызовом:

MyClass *test = [MyClass sharedSSLConnection];
[test writeData:@"test"];

Это не удалось. Я думаю, проблема в том, что рукопожатие не готово, когда метод хочет отправить сообщение в сокет. Но как я могу это решить? Я не нашел никакого решения.

Спасибо за вашу помощь!


person user1200794    schedule 29.02.2012    source источник
comment
Сообщение об ошибке: (willDisconnectWithError:Error Domain=kCFStreamErrorDomainSSL Code=-9844 Операция не может быть завершена (ошибка kCFStreamErrorDomainSSL -9844.)). Но onSocketDidSecure не вызывается до выполнения кода в writeData.   -  person user1200794    schedule 29.02.2012


Ответы (1)


Могли бы порекомендовать, чтобы ваш MyClass сохранял данные и ждал, пока состояние не будет готово onSocketDidSecure, а затем отправлял их?

person Scott Corscadden    schedule 29.02.2012