在 AppSync 中获取“软件导致连接中止”

Posted

技术标签:

【中文标题】在 AppSync 中获取“软件导致连接中止”【英文标题】:Getting "Software caused connection abort" in AppSync 【发布时间】:2019-08-02 23:15:55 【问题描述】:

我有一个简单的 GraphQl 查询,当我调用它时它一直运行良好除了在我最小化我的应用程序并接收推送以及通过点击推送打开应用程序时我有时会触发 AppSync 查询有效,有时我在响应中收到此错误:-

Optional
▿ some : AWSAppSyncClientError
▿ requestFailed : 3 elements
- .0 : nil
- .1 : nil
▿ .2 : Optional
- some : Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort" UserInfo=_kCFStreamErrorCodeKey=53, _kCFStreamErrorDomainKey=1

我想提一下,我正在使用 AppSync 版本 2.10.1 的 ios 中开发此应用程序。

似乎没有发现关于 AppSync 的这个问题,所以如果有人有任何想法,请随时分享。

谢谢。

【问题讨论】:

请在您的问题中添加更多详细信息。您的应用程序在哪个操作系统上(看起来像 Coocoa,所以是 iOS 或 MacOS)?什么版本?您使用的是什么 AWS 开发工具包版本? AFNetworking error 53 during attempted background fetch的可能重复 看起来像 ***.com/questions/53297188/… 或 ***.com/questions/11864553/… 的副本 嘿@SébastienStormacq 抱歉给您带来不便!我已经添加了 iOS 标签,让我添加有关您的查询的更多信息。 我已经知道添加延迟可以解决问题,但您认为它是完美的解决方案吗? @SébastienStormacq 【参考方案1】:

根据评论中发布的其他问题和答案,这看起来像是 iOS 中的临时网络状况,可能会发生在后台应用程序中。

作为“everything fails, all the time”,我建议捕获此错误并重试。

不要无限重试,也不要立即重试,而是实施指数退避策略。在此处查看操作方法和伪代码示例:https://docs.aws.amazon.com/general/latest/gr/api-retries.html

这种错误处理策略被认为是处理远程服务时的最佳实践。

【讨论】:

听起来很公平,但我认为这应该在框架中处理很多人仍然无法解决这个问题。

以上是关于在 AppSync 中获取“软件导致连接中止”的主要内容,如果未能解决你的问题,请参考以下文章

“软件导致连接中止:recv failed”的原因

软件导致连接中止。回复错误:连接无效

JnrpeClient:java.net.SocketException:软件导致连接中止:recv 失败

IOS Parse LiveQuery:错误处理消息:可选(POSIXErrorCode:软件导致连接中止)

java.net.SocketException:软件导致连接中止:recv 失败 [重复]

***Error 然后 SocketException:软件导致连接中止:套接字写入错误 [重复]