我有个问题。我在stackoverflow上阅读了很多关于这个问题的主题,但没有任何帮助。我正在尝试通过彗星连接实现客户端-服务器通信。我有一个负责发送消息的实例和一个负责接收消息的实例。过程如下: - 发送实例向服务器发送 GET 请求,服务器响应接收实例。第一次调用工作正常,我得到了第一个响应并且可以获得我需要的数据,但下一个请求不会触发我的 didReceiveData 回调。但是我看到服务器已经发送了数据,我在服务器日志中看到它,我在客户端机器的wireshark中看到它。一件有趣的事情:在我将“content-length:0”添加到响应之前,第一个响应并没有触发我的回调。NSUrlConnection 的未记录功能?我还应该考虑什么让 NSUrlConnection 认为响应是有效的?替代方案:强制从套接字中获取数据,但我不知道 NSUrlConnection 是否可能(男人对此保持沉默)
持久连接代码:
NSURL* requestUrl = [NSURL URLWithString:[[NSString alloc] initWithUTF8String:rq->url.c_str()]];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:requestUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:600];
m->connection = [[NSURLConnection alloc] initWithRequest:request delegate:request_delegate() startImmediately:NO];
[m->connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[m->connection start];