Search code examples
iossocketssocketrocket

SocketRocket not throwing error on connecting invalid host


I am developing an iPhone App (using iOS 9 beta). I am using Socket connections for which I am using SocketRocket client library. But when I try to establish a wss connection with some invalid host name, I don't get any error on opening socket, connection or even on sending data, so whenever I try to run program it seems like information about host is correct and data is being sent.

I am using current version of SocketRocket library, I have added SRWebSocket.h, SRWebSocket.m and SocketRocket-Prefix.pch files in my project. Following is the part of code I have:

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;

If I pass some random host name like "abc.def" for the variable webSocketHost, it will still run smoothly (I have try-catch blocks surrounding above code, and I also tried to put break points in between and debugged it line by line). And even when I don't have any internet connection to my phone, there aren't any errors thrown.

Does anyone know what could be the problem?

Thanks!


Solution

  • Are you implementing this delegate method? The library won't throw an error when you call [webSocket open], it will call this method if it can't connect to the endpoint sometime in the future since establishing a connection is an asynchronous operation.

    - (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;