gpt4 book ai didi

c++ - ios NSURLConnectionDataDelegate didReceiveData 回调未调用

转载 作者:太空宇宙 更新时间:2023-11-04 14:04:56 25 4
gpt4 key购买 nike

我有一个问题。我已经阅读了很多关于这个问题的关于 stackoverflow 的主题,但没有任何帮助。我正在尝试通过 cometd 连接实现客户端-服务器通信。我有一个负责发送消息的实例和一个负责接收消息的实例。过程如下:- 发送实例向服务器发送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];

最佳答案

nginx 服务器需要将 header 部分“content-length”设置为大一些,因为客户端获取数据包并增加接收到的字节数,并且在接收到 header 中设置的字节数后 - 它不会再接受任何响应。省略内容长度部分将阻止委托(delegate)调用。这就是原因

关于c++ - ios NSURLConnectionDataDelegate didReceiveData 回调未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com