iPhone App,服务器端组件,解析集成

时间:2012-04-03 20:20:48

标签: iphone ios push-notification

这将是我的第一款具有任何复杂性的iOS应用程序。在开始尝试之前,我想概述组件和结构以获得一些反馈。

从用户的角度来看,该应用程序监控当地湖泊的水位,并在水位改变用户指定的量时接收推送通知。我认为使用Parse将是最容易管理用户数据的,我将在Nodester上尝试一个Node.js服务器端组件(我知道一些基本的JS并且认为它是一个很好的即将到来的语言来熟悉)。这就是我看到它的运作方式......

  • 用户在设备上创建一个帐户,并指定他们将收到推送通知的lakeLevelChange金额。用户的数据被推送到Parse的数据mgt。
  • 服务器端组件每天运行3-6次此程序:
    • 通过HTTP请求提取currentLakeLevel
    • 从Parse
    • 中提取用户数据
    • currentLakeLevel与指定用户lakeLevelChange
    • 进行比较
    • 如果差异是=> lakeLevelChange,按照满足其指定条件的用户发送推送通知HTTP Post请求
  • Parse接收POST请求并向APNS服务器发送推送通知
  • 客户收到推送通知

当输入时,它实际上听起来并不复杂。这是构建此功能的正确方法吗?我错过了什么吗?建议非常感谢!

2 个答案:

答案 0 :(得分:2)

有点逻辑问题:

  

服务器端组件每天运行3-6次此程序:
   通过HTTP请求拉出currentLakeLevel    从Parse中提取用户数据    将currentLakeLevel与用户指定的lakeLevelChange进行比较    如果差异是=> lakeLevelChange,每个用户发送推送通知HTTP Post请求,满足其指定条件

您实际上还需要为每个用户存储最后一次警报的级别。否则,增量更改可能会超出用户的阈值,并且永远不会触发警报。

想象一下,如果我说我希望在水平变化6英寸时收到警报。然后,您记录七次事件,每次级别上升一英寸。您没有观察到超过6英寸的更改,但总更改超过了我的通知阈值,我可能打算让您通知我。

因此,当您触发警报时,您需要存储当前级别,然后在每次更改事件上,将其与您通知他们的的最后一级进行比较。

答案 1 :(得分:1)

你错过了不愉快的道路。这是程序员永远不会旅行的路径。我们的计划方式没有任何改变,所以我们必须为失败做好计划。问自己一些问题,“当服务器关闭维护或停电并错过其3-6个预定运行中的一个或全部时会发生什么?” “错过的执行是否会排队并发出一堆错过的通知?” “当用户更改他们指定为lakeLevelChange的内容但收音机已关闭和/或服务器请求无法完成时会发生什么?” “当Parse获取垃圾数据或生成垃圾日期时会发生什么?”只询问其中的一部分将引导您走向最佳设计。