SocketRocket 不会在连接无效主机时抛出错误
SocketRocket not throwing error on connecting invalid host
我正在开发一个 iPhone 应用程序(使用 iOS 9 beta)。我正在使用我正在使用 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 块,我也试图在两者之间放置断点并逐行调试它)。
即使我的 phone 没有任何互联网连接,也不会抛出任何错误。
有谁知道可能是什么问题?
谢谢!
你在实现这个委托方法吗?当您调用 [webSocket open]
时,该库不会抛出错误,如果将来某个时间无法连接到端点,它会调用此方法,因为建立连接是一个异步操作。
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;
我正在开发一个 iPhone 应用程序(使用 iOS 9 beta)。我正在使用我正在使用 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 块,我也试图在两者之间放置断点并逐行调试它)。
即使我的 phone 没有任何互联网连接,也不会抛出任何错误。
有谁知道可能是什么问题?
谢谢!
你在实现这个委托方法吗?当您调用 [webSocket open]
时,该库不会抛出错误,如果将来某个时间无法连接到端点,它会调用此方法,因为建立连接是一个异步操作。
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error;