0

假设您有一个 iPhone 应用程序,它通过发送下面的 JSON 字符串不断更新您的坐标;

{"id":"abcd","lat":12.2312,"lon":23.0212}

我确实发送了这样的回复;

{"r":"OK"}

现在复杂的部分是(我使用Heroku作为我的部署服务)当我发出这样的请求时,它大约需要400 个字节并被数据计划使用。一个挑战是,在我的应用程序中,我每 2 秒发出一次此请求,并且我计划将其放入的数据计划每月不超过 250 MB。然而,简单的计算表明;

总计: 400 * 30 * 60 * 24 * 30 = 1 036 800 000 = ~1 GB,这非常离谱。那么可以做些什么来减少正在发送的整体数据呢?Gzip/deflate,减少标头中发送的元素(甚至可能删除请求类型),缩短标签?为了使它尽可能小,我能做些什么?

4

1 回答 1

2

好吧,每个纬度和经度都代表大约 68 英里(约 111 公里)的测量值,因此即使在汽车中,发送的大量读数也将在同一度数内。

发送上次和当前读数的增量可以帮助使其更小。

您还可以使用您在服务器端解析的单个分隔符将您的 lon/lat(或 delta)数据连接成一个值。

So once a minute:  {"id":"abcd","m":"12.2312|23.0212"} 
Then 29 times:     {"id":"abcd","d":"-25|+68"} etc.

您需要弄清楚服务器端,但这只是一个开始。

于 2013-01-08T22:54:59.260 回答