我正试图在AFNetworking上设置SPDY,但我很难知道为什么会有超时。
我已经在SPDY check检查了我的服务器,一切顺利。
我将这行代码放在initWithBaseURL:(NSURL *)url
方法
NSString *origin = [NSString stringWithFormat:@"%@:443",kAPIClientBaseURLString];
[SPDYURLConnectionProtocol registerOrigin:origin];
我正在获得看似正常的调试日志
2013-12-23 15:26:37.889 Proj[42859:70b] SPDY [INFO] register origin: <SPDYOrigin: 0x19156fa0>
2013-12-23 15:26:37.890 Proj[42859:420f] SPDY [DEBUG] origin registered: <SPDYOrigin: 0x19156fa0>
2013-12-23 15:26:37.892 Proj[42859:441b] SPDY [INFO] start loading https://api.proj.mx:443/2/ursers/launching_info?param1=1¶m2=2
经过几秒钟的等待后,我得到了
2013-12-23 15:28:07.994 Proj[42859:441b] SPDY [INFO] stop loading https://api.proj.mx:443/2/dr/drs?param1=1
2013-12-23 15:28:07.996 Proj[42859:441b] SPDY [WARNING] session connection error: Error Domain=SPDYSocketErrorDomain Code=6 "Unexpected end of stream." UserInfo=0x13e52710 {NSLocalizedDescription=Unexpected end of stream.}
如果我打印错误,它会显示为超时。
如果我删除了SPDY集成(我上面写的两行),它就应该是这样了。
我真的不知道发生了什么,会感激任何帮助和评论。
感谢。
我更改了网址以避免隐私和安全问题。
答案 0 :(得分:2)
CocoaSPDY库需要一个服务器,该服务器通过专用端口说SPDY,或者当它通过新建立的连接接收到SETTINGS帧时能够动态切换到SPDY管道。
据我所知,GFE目前没有做任何一件事,这意味着目前,Google API端点不支持CocoaSPDY库。
你控制自己的服务器吗?如果是这样,很可能它默认依赖于NPN来建立协议,而你却希望将它配置为在应用程序连接到它时简单地说SPDY。
答案 1 :(得分:1)
您的服务器是否支持SPDY?
尝试在socket:willDisconnectWithError:
委托方法中设置断点。您可以检查[socket unreadData]
以查看任何未读数据。
如果这没有为您提供任何有用的信息,请尝试实施(并记录)the other delegate methods。