2010-10-22 33 views
1

我目前正在嘗試構建(簡化的)股票應用程序(如iphone上內置的應用程序)。我用一個REST接口設置了一個簡單的服務器,我的應用可以與之通信。iphone股票應用程序的體系結構草圖

但是我很努力地找到權利/最佳方式來構建iPhone上的這種(流數據客戶端)客戶端。

我現在最好的辦法是使用計時器定期從服務器拉xml有效載荷(連接是異步的,但xml解析不是爲此,接口有時會被阻塞,我有點害羞的線程編程因爲我在其他平臺上學到了一些經驗教訓)。

我閱讀了關於websockets,但它並不清楚他們是否以及如何支持iphone。

你會怎麼做?

任何提示將不勝感激,謝謝。

回答

0

websockets並不會幫助你 - 這是一個服務器端技術,使得類似於套接字的接口能夠通過HTTP工作。

如果您不想阻止GUI,則需要使用另一個線程。你很害怕這樣做,所以儘可能少地分享(最好不要)兩個線程之間。使用消息傳遞機制從後臺線程獲取信息到UI線程。

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

+0

所以,基本上,一個計時器(後臺線程內)內投票數據是要走的路?對其他推送技術有任何想法(儘管我並不是真的想要專利的xmpp服務器......) – michasvision 2010-10-22 12:56:55

+0

這更多的與你認爲你會同時擁有多少客戶以及你可以將多少服務器能力放在它後面。此外,數據多長時間發生變化以及可接受的延遲時間。如果一些延遲確定,輪詢很好,並且您希望降低服務器的壓力。在客戶端上,如果您不想阻止GUI,則需要使用後臺線程。 – 2010-10-22 13:15:48

0

看看這個question.

它談論異步VS同步連接。您將希望使用異步調用來獲取數據,以免鎖定用戶界面。您可以將它與輪詢計時器一起使用,以從服務器獲取數據。

您可以找到有關NSURLConnection的更多信息蘋果的文檔中here