SocketRocket не выдает ошибку при подключении недопустимого хоста

Я разрабатываю приложение для iPhone (используя бета-версию iOS 9). Я использую соединения Socket, для которых я использую клиентскую библиотеку SocketRocket. Но когда я пытаюсь установить wss-соединение с каким-то недопустимым именем хоста, я не получаю никаких ошибок при открытии сокета, соединения или даже при отправке данных, поэтому всякий раз, когда я пытаюсь запустить программу, мне кажется, что информация о хосте верна, а данные отправляется.

Я использую текущую версию библиотеки SocketRocket, я добавил в свой проект файлы SRWebSocket.h, SRWebSocket.m и SocketRocket-Prefix.pch. Ниже приведена часть кода, которая у меня есть:

NSString* url = [NSString stringWithFormat:@"wss://%@/myproject/stream?data=%d", webSocketHost, dummyData];
SRWebSocket *webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
webSocket.delegate = self;

// open websocket
[webSocket open]; 

// send message to websocket
[webSocket send:[self getJSONString:parameters]];

// close websocket
[webSocket close];
webSocket = nil;

Если я передам какое-то случайное имя хоста, например "abc.def", для переменной webSocketHost, он все равно будет работать без сбоев (у меня есть блоки try-catch, окружающие приведенный выше код, и я также попытался поставить точки останова между ними и отладил их построчно). И даже когда у меня нет подключения к Интернету на моем телефоне, никаких ошибок не возникает.

Кто-нибудь знает, в чем может быть проблема?

Спасибо!


person user2312896    schedule 14.07.2015    source источник


Ответы (1)


Вы реализуете этот метод делегата? Библиотека не выдаст ошибку при вызове [webSocket open], она вызовет этот метод, если не сможет подключиться к конечной точке когда-нибудь в будущем, поскольку установление соединения является асинхронной операцией.

- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;
person OpenUserX03    schedule 14.07.2015