SocketRocket在连接无效主机时不会抛出错误

时间:2015-07-14 22:21:14

标签: ios sockets socketrocket

我正在开发一款iPhone App(使用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块,我也尝试将断点放在之间和逐行调试它。 即使我的手机没有任何互联网连接,也没有任何错误。

有谁知道可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否正在实施此委托方法?当你调用[webSocket open]时,库不会抛出错误,如果它在将来某个时候无法连接到端点,它将调用此方法,因为建立连接是异步操作。

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