代码之家  ›  专栏  ›  技术社区  ›  ashish.surana

如何在应用程序中连续更新数据,而不在一段时间间隔后调用API?

  •  3
  • ashish.surana  · 技术社区  · 6 年前

    我想知道如何在iOS应用程序中不断更新数据,而不必一次又一次地调用API。例如,如果我在tableView中有一个产品列表,我想从服务器更新每个产品的价格,因为它会不断变化。

    当服务器中的任何值发生更改时,是否有任何方法可以从服务器中生成可以在应用程序中检测到的任何事件?

    提前谢谢。

    3 回复  |  直到 6 年前
        1
  •  6
  •   Community CDub    4 年前

    这些是iOS中不断更新来自某个服务器的数据的方法。

    1. 投票

      轮询是一个术语,用于不断使用 POST GET 定期或不定期间隔后请求。
    2. 推送通知

      Silent Push-Notification 是一种在发生更改时更新数据的方法。在此类型中,服务器生成和请求 苹果 发送带有某种自定义的通知 JSON .这很快,但是 非担保 方法因为 Push 可能会错过一段时间,也可能会推迟一段时间。
    3. 插座

      Socket 对于应用程序需要更新其 client-end 每当其 back-end 。因为它始终与服务器保持实时通信,所以您无需每次都请求服务器。
        2
  •  3
  •   Sachin Toskar    6 年前

    在您的场景中,您希望更新每个单元格的值。使用Socket编程可以实现这一点。socket编程有助于快速实时更新日期。

    套接字编程参考:

    https://www.raywenderlich.com/157128/real-time-communication-streams-tutorial-ios

        3
  •  2
  •   Community CDub    3 年前

    如果您想经常从服务器“推送”数据,可以使用或之类的技术 WebSockets HTTP long polling (这类模拟推送式轮询)。

    这个 Socket.IO-Client-Swift 库对这些细节进行了抽象,并为应用程序提供了一个很好的界面。

    第三种选择是使用普通的旧TCP套接字。

    我在这里假设您的更新速度大约为每10分钟或更快(最多几十秒)。如果你的更新频率较低,比如每小时更新一次,那么 Apple Push (aka remote) notification 也应该有效。