0

我正在开发一个 iPhone 应用程序(使用 iOS 9 测试版)。我正在使用我正在使用SocketRocket客户端库的 Socket 连接。但是,当我尝试使用一些无效的主机名建立 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 块,我还尝试在它们之间放置断点并逐行调试它)。即使我的手机没有任何互联网连接,也不会引发任何错误。

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

谢谢!

4

1 回答 1

1

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

- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;
于 2015-07-14T23:28:46.863 回答