假设您有一个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,减少标题中发送的元素(甚至删除请求类型),缩短标记?为了尽可能小,我还能做些什么呢?
答案 0 :(得分: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.
你需要弄清楚服务器端,但这是一个开始。