ios - 移动客户端不应该终止与API的连接吗?

标签 ios rest server client apigee

我正在开发使用API​​的iOS应用。该API具有文本搜索功能,并且我们已经实现了一个反跳器,以确保我们不会在用户每次在搜索字段中写入字符时都不执行搜索。我们在每个角色之后等待0.2秒,看看是否还会有另一个角色。
如果用户写“Washingto”并用0.205秒键入最后一个“n”,我们将首先搜索第一个单词,然后在0.005秒后立即将其取消。我们使用标准客户端API(例如,iOS的URLSessionTask.cancel)取消请求。

这已经完美运行了一年。但是今天,我们收到了来自(外部)API的警告,说我们需要停止像这样取消自己的查询。他们的原因是他们的网关Apigee不能很好地处理它,并且他们收到数英里的状态码为499的日志。

据我所知,它们暗示我们必须保留请求并接收响应,这意味着更多的数据使用量(移动),更多的处理器(解析)以及因此更多的电池使用量。

这样的“问题”真的只能这样解决吗?我以为我们在这里是从客户那里得到的最佳实践,但是他们声称Apigee声称客户不应该关闭这种连接。

另外,我不确定要使用哪个标签或在哪里询问。

最佳答案

只有一些(部分)观察结果:

1)在本地执行查询使用的是LESS功率,因为​​您不必举起天线,为wifi / 4G或类似设备加电...

2)您将在几秒钟内向服务器发送数百万的https请求(我希望您有100K用户。:)键入4个或更多字符...)因此服务器也承受压力。

2)等待数毫秒以上的用户体验很差。

我可以理解您的数据库位于远程,但是使用本地(精简)的Sqlite Db(我们将其下载为后台压缩文件)会带来更好的体验

关于ios - 移动客户端不应该终止与API的连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372188/

相关文章:

c++ - 简单的客户端/服务器 TCP c++

ios - 无法识别的选择器发送到实例 (UIPinchGestureRecognizer)

iphone - 选择 WiFi 网络

iphone - 如何检查一个限制的日期和时间是否与另一个限制重叠?

java - 检测apk下载来源

php - 如何更改XAMPP Web服务器根文件?

ios - 更新UI时如何同时执行2个函数

java - Resty - IllegalArgumentException 与 | URL 中的字符

rest - 文件上传后为空响应

java - Spring MVC 图片上传使用 Mockmvc 和 JSON 集成测试失败