【问题标题】:iPhone App, server-side component, parse integrationiPhone App,服务端组件,解析集成
【发布时间】:2012-04-03 20:20:48
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请在这里处理iOS应用。如果您对 Node 有疑问,请打开另一个问题

标签: iphone ios push-notification


【解决方案1】:

有点逻辑问题:

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

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

想象一下,如果我说我想在液位变化 6 英寸时收到警报。然后,您记录七个事件,其中水平每次上升一英寸。您从未观察到超过 6 英寸的变化,但总变化超过了我的通知阈值,我可能是想让你通知我。

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

【讨论】:

  • 我没想到,不过有道理,谢谢。
  • 我会为此 +1 以对一个可能要到以后才被发现的案例采取深思熟虑的方法。
【解决方案2】:

你错过了不幸的道路。这是程序员永远不会走的路径,而程序总是会走。没有什么事情会按照我们的计划进行,所以我们必须为失败做好计划。问问自己这样的问题,“当服务器因维护或中断而断电并错过其 3-6 次预定运行中的一项或全部时会发生什么?” “是否应该将错过的处决排队并发送一堆错过的通知?” “当用户更改了他们指定为 lakeLevelChange 的内容但收音机已关闭和/或服务器请求无法完成时会发生什么?” “当 Parse 获取垃圾数据或产生垃圾日期时会发生什么?”只需询问其中的几个即可引导您走向最佳设计。

【讨论】:

    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多