W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
什么是組播?組播是多個(gè)訂閱者共同享用一個(gè)訂閱信號(hào)的術(shù)語(yǔ)。通過(guò)上一節(jié)的內(nèi)容我們知道在默認(rèn)的情況下,信號(hào)是冷的。但是有時(shí)候,我們并不想讓冷信號(hào)在每一次被訂閱時(shí)工作。這通常在邊界效應(yīng)、訂閱所要執(zhí)行的任務(wù)代價(jià)昂貴或者只能以其他方式在適當(dāng)?shù)臅r(shí)間執(zhí)行時(shí)有這種需求。這時(shí)網(wǎng)絡(luò)請(qǐng)求浮現(xiàn)在腦海中。
所以與其從這樣的信號(hào)中創(chuàng)建一個(gè)RACMulticastConnection
不如使用RACSignal
的publish
方法或者multicast:
方法。前者可以創(chuàng)建一個(gè)組播連接,后者也一樣為您創(chuàng)建一個(gè)組播連接但需要一個(gè)RACSubject
參數(shù)。當(dāng)它被調(diào)用時(shí)這個(gè)RACSubject可以通過(guò)底層信號(hào)發(fā)送一個(gè)值出來(lái)。任何對(duì)這個(gè)值有興趣的,都可以用這個(gè)從底層信號(hào)發(fā)送一個(gè)值到連接的信號(hào)來(lái)替代你提供的RACSubject
,這個(gè)信號(hào)恰好就等同于你的這個(gè)RACSubject
.
為了說(shuō)明這種不同,請(qǐng)參考下面的插圖:
由于信號(hào)是冷啟動(dòng)的,每增加一個(gè)訂閱者,她就會(huì)被執(zhí)行一次。這種情況是我們不希望看到的,可以使用組播連接來(lái)改善。
信號(hào)的組播連接訂閱,當(dāng)它傳送了一個(gè)新值的時(shí)候,是通過(guò)公共頻道來(lái)傳送給信號(hào)的。我們可以根據(jù)自己的喜好訂閱該信號(hào),但這個(gè)信號(hào)在訂閱相關(guān)的操作上有且僅會(huì)執(zhí)行一次,而不是像以前那樣增加一個(gè)訂閱者這個(gè)信號(hào)上就執(zhí)行一次訂閱相關(guān)的操作。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: