我正在开发一个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;
如果我为变量webSocketHost
传递一些随机的主机名,如"abc.def"
,它仍然会顺利运行(我在上面的代码周围有try-catch块,并且我还尝试在两者之间放置断点并逐行调试)。甚至当我的手机没有任何网络连接时,也不会抛出任何错误。
有谁知道是什么问题吗?
谢谢!
你在实现这个委托方法吗?当您调用[webSocket open]
时,库不会抛出错误,如果将来某个时候无法连接到端点,它将调用此方法,因为建立连接是一个异步操作。
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;