我正在开发一款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块,我也尝试将断点放在之间和逐行调试它。
即使我的手机没有任何互联网连接,也没有任何错误。
有谁知道可能是什么问题?
谢谢!
答案 0 :(得分:1)
您是否正在实施此委托方法?当你调用[webSocket open]
时,库不会抛出错误,如果它在将来某个时候无法连接到端点,它将调用此方法,因为建立连接是异步操作。
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;