2014-09-13 61 views
1

我正在學習反應式編程,特別是ReactiveCocoa,我不確定如何處理網絡連接和套接字連接。使用ReactiveCocoa處理網絡和套接字連接

中的應用: 進行網絡連接的應用程序等待然後通過獲得來自寧靜後端令牌登錄,然後使用該令牌連接到插座。

我通過鏈接三個信號基本上會導致應用程序陸續執行一個任務,解決了這個: 即使世界上互聯網 - >獲得令牌 - >當有一個象徵 - >連接插座 現在,如果我失去了我的網絡連接並重新獲得它,這個過程將從頭開始並重新連接套接字。

問題 如果即使網絡連接保持穩定(可能經常發生),套接字也會斷開連接怎麼辦?如果網絡連接丟失並重新獲得,鏈只會重新啓動。因此,套接字在連接斷開時應該嘗試再次連接,但只有在網絡連接的情況下才能連接。

如何使用ReactiveCocoa或反應式編程來實現這些依賴關係?

回答

0

我不知道如何做到這一點實現/專/在無可可,但我現成的袖口的解決方案是加入第一個和最後一個單元格:

  • 當有互聯網,沒有插座:獲取令牌 - >連接

這樣,當'互聯網有'條件更改爲true時,流程啓動,並且'套接字存在'條件更改爲false時,流程啓動。

例如,像鈉(JAVA)你可能會使用這樣的細胞:

Cell<Boolean> hasInternet; 
Cell<Socket> socket; 

Cell<Boolean> shouldGetToken = Cell.lift( 
    (hi, s) -> hi && socket == null, hasInternet, socket);