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

时间:2019-08-06 08:46:03

标签: 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 个答案:

答案 0 :(得分:-2)

仅一些(部分)观察结果:

1)在本地执行查询使用的是LESS功率,因为​​您不必抬高天线,打开wifi / 4G或类似的功率...

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

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

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