ReactiveCocoa 組播原理

2018-08-01 16:11 更新

什么是組播?組播是多個訂閱者共同享用一個訂閱信號的術語。通過上一節(jié)的內(nèi)容我們知道在默認的情況下,信號是冷的。但是有時候,我們并不想讓冷信號在每一次被訂閱時工作。這通常在邊界效應、訂閱所要執(zhí)行的任務代價昂貴或者只能以其他方式在適當?shù)臅r間執(zhí)行時有這種需求。這時網(wǎng)絡請求浮現(xiàn)在腦海中。

所以與其從這樣的信號中創(chuàng)建一個RACMulticastConnection不如使用RACSignalpublish方法或者multicast:方法。前者可以創(chuàng)建一個組播連接,后者也一樣為您創(chuàng)建一個組播連接但需要一個RACSubject參數(shù)。當它被調(diào)用時這個RACSubject可以通過底層信號發(fā)送一個值出來。任何對這個值有興趣的,都可以用這個從底層信號發(fā)送一個值到連接的信號來替代你提供的RACSubject,這個信號恰好就等同于你的這個RACSubject.

為了說明這種不同,請參考下面的插圖:

multiple_subscriptions

由于信號是冷啟動的,每增加一個訂閱者,她就會被執(zhí)行一次。這種情況是我們不希望看到的,可以使用組播連接來改善。

multicast_connection

信號的組播連接訂閱,當它傳送了一個新值的時候,是通過公共頻道來傳送給信號的。我們可以根據(jù)自己的喜好訂閱該信號,但這個信號在訂閱相關的操作上有且僅會執(zhí)行一次,而不是像以前那樣增加一個訂閱者這個信號上就執(zhí)行一次訂閱相關的操作。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號