如果Socket.io已连接,则Alamofire请求始终以“请求超时”失败

时间:2017-05-03 13:32:09

标签: ios swift sockets socket.io alamofire

如果socket.io已连接Alamofire未按预期工作,则始终会收到req time out错误。如果我禁用Socket.io

,Alamofire可以正常工作

这是我得到的错误

Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." 
UserInfo={NSUnderlyingError=0x60800044c720 
{Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" 
UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}},
NSErrorFailingURLStringKey=https://enpoint.json, NSErrorFailingURLKey=https://enpoint.json, 
_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

和这个

_tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled

在git https://github.com/Alamofire/Alamofire/issues/1545上报告了类似的问题,但没有答案。

我不知道我做错了什么!任何帮助将不胜感激

1 个答案:

答案 0 :(得分:5)

我能够通过更改alamofire参数编码来解决此问题。 默认情况下,如果您没有传递任何编码参数,Alamofire会将编码设置为URLEncoding。 对URLEncodingGET请求使用DELETE。 对所有其他请求使用JSONEncoding.default(API应该支持此操作)。

仍然我不确定为什么它没有套接字工作而且没有使用套接字。