【问题标题】:Architecture sketch for iphone stock appiphone 股票应用程序的架构草图
【发布时间】:2010-10-22 12:23:54
【问题描述】:

我目前正在尝试构建一个(简化的)股票应用程序(就像 iPhone 上的内置应用程序)。我设置了一个带有 REST 接口的简单服务器,我的应用可以与之通信。

但是,我正在努力寻找在 iphone 上构建这种(流式数据消费者)客户端的正确/最佳方法。

目前我最好的选择是使用计时器定期从服务器中提取 xml 有效负载(连接是异步的,但 xml 解析不是因此接口有时会被阻塞。我对线程编程有点害羞,因为我在其他平台上艰难地吸取了一些教训)。

我阅读了有关 websockets 的信息,但我不清楚 iphone 是否以及如何支持它们。

你会怎么做?

任何提示将不胜感激,谢谢。

【问题讨论】:

    标签: iphone architecture stock


    【解决方案1】:

    websockets 不会帮助您——这是一种服务器端技术,可以使类似套接字的接口在 HTTP 上工作。

    如果您不想阻塞 GUI,则需要使用另一个线程。你害怕这样做是对的,所以在两个线程之间尽可能少地共享(最好不共享)。使用消息传递机制从后台线程获取信息到 UI 线程。

    看看 ActorKit:http://landonf.bikemonkey.org/code/iphone/ActorKit_Async_Messaging.20081203.html

    【讨论】:

    • 那么,基本上,在计时器内(在后台线程内)轮询数据是要走的路吗?关于其他推送技术的任何想法(虽然我真的不想搞乱专有的 xmpp 服务器......)
    • 这与您认为您将同时拥有多少客户以及您可以为其提供多少服务器能力有关。此外,数据更改的频率以及可接受的延迟时间。如果一些延迟是可以的,那么轮询很好,并且您想减轻服务器的压力。在客户端,如果不想阻塞GUI,需要使用后台线程。
    【解决方案2】:

    看看这个question.

    它讨论了异步与同步连接。您将希望使用异步调用来获取数据,这样您就不会锁定您的 UI。您可以将它与轮询计时器结合使用,以从服务器获取数据。

    您可以在苹果的文档here中找到有关 NSURLConnection 的更多信息

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多