2015-10-27 56 views
2

我必須通過Watch的tcp套接字連接遠程服務器。來自WatchOS 2和CFStream的套接字連接

我已經使用CFStream編寫了一段代碼,它完全可以在Watch模擬器中使用。當我嘗試打開使用CFStreamCreatePairWithSocketToHost與服務器的連接

The operation couldn’t be completed. Can't assign requested address (Code = 49)

當我在觀看運行它,我得到這個錯誤。

蘋果的文件宣稱,CFStreamCreatePairWithSocketToHost

Available in watchOS 2.0 and later.

,所以我希望它有應該工作,但我發現這個蘋果的工程師答案,確認有沒有辦法打開,從監視TCP連接:

Socket communication does not work real Apple Watch

任何人都可以澄清,並幫助我理解?

假設我無法從Watch打開一個tcp連接,由於我不能使用[NSURLSession],我有什麼樣的替代方法?

我可以使用[WCSession]提供的通信方法之一,但當iPhone應用程序未運行或不在前臺時它們是否工作?

回答

1

您可以使用WCSession's sendMessage API在後臺喚醒iOS應用程序並讓它爲您完成Stream工作。

+1

是的,這是我已經做的。它很尷尬,但實際上它正在工作。正如預期的那樣,速度和吞吐量相當低(模擬器和手錶),我正在努力過濾不必要的消息。感謝您的建議。 – Fab

+0

我處於相同的狀態...然後我使用手機作爲TCP通信的橋樑,但手機處於待機狀態時通信非常緩慢。 – Lorenzo