什么是 pubsub?
發(fā)布訂閱模式(Publish–subscribe pattern),最早是由蘋(píng)果公司在 Mac OS 引入。
消息的發(fā)送者(publishers)不直接將消息發(fā)送給接收者(subscriber)。而是將消息分門(mén)別類(lèi),發(fā)送者并不知道也無(wú)需知道接收者的存在。而接收者只需要訂閱一個(gè)或者多個(gè)類(lèi)別的消息類(lèi),只接收感興趣的消息,不知道也無(wú)需知道發(fā)布者的存在。(http://wap.friendlycc.com.cn/host/ class="visible">en.wikipedia.org/wiki/Publish–subscribe_pattern)
寫(xiě)代碼的朋友對于觀(guān)察者模式(Observer)并不陌生。這個(gè)有些類(lèi)似軟件設計模式里面的觀(guān)察者模式(Observer)。但是并不完全相同。pubsub比Observer更加的松耦合。這里不再詳細對比二者的區別。有興趣的朋友自行Google一下。
pubsub功能目前還屬于ipfs的一個(gè)實(shí)驗性質(zhì)的功能,如果要開(kāi)啟pubsub功能,在啟動(dòng)ipfs daempon的時(shí)候需要指定參數: –enable-pubsub-experiment。
下面我們使用具體例子來(lái)說(shuō)明ipfs pubsub 如何使用?
1 搭建兩個(gè)IPFS節點(diǎn)A和B,
如果還不知道節點(diǎn)如何搭建,參見(jiàn)之前的文章(如何在IPFS網(wǎng)絡(luò )里面上傳一張圖片)
A(小編本地節點(diǎn)):
IPFS節點(diǎn)ID: QmTrRNgt6M9syRq8ZqM4o92Fgh6avK8v862n2QZLyDPywY
IPFS地址:192.168.162.129(保護隱私,沒(méi)有使用公網(wǎng)IP)
B(亞馬遜aws):
IPFS地址:13.231.198.154
IPFS節點(diǎn)地址; /ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h6Y51BHZMaypzjCnNc1MiVk2H5EZJxWgAuRkLanaK
2 啟動(dòng)節點(diǎn)B
ipfs daemon –enable-pubsub-experiment
(注意這里需要使用參數 –enable-pubsub-experiment)
3 為了快速演示,將節點(diǎn)A和B直連
3.1 刪除節點(diǎn)A的全部bootstrap地址
ipfs bootstrap rm all
3.2 在A(yíng)節點(diǎn)添加B節點(diǎn)為bootstrap節點(diǎn)
ipfs bootstrap add /ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h6Y51BHZMaypzjCnNc1MiVk2H5EZJxWgAuRkLanaK
4 啟動(dòng)節點(diǎn)A
ipfs daemon –enable-pubsub-experiment
(注意這里需要使用參數 –enable-pubsub-experiment)
5 pubsub功能使用
5.1 在A(yíng)節點(diǎn)上新開(kāi)一個(gè)命令行,執行
ipfs pubsub sub flytofuture
這句的意思是我們在節點(diǎn)A訂閱了消息主題:flytofuture。凡是發(fā)往這個(gè)消息主題的消息都會(huì )被A節點(diǎn)接收到。
5.2 我們在B節點(diǎn)對消息主題 flytofuture發(fā)送消息
ipfs pubsub pub flytofuture “hello, IPFS指南,飛向未來(lái)!”
這個(gè)時(shí)候我們就可以在A(yíng)節點(diǎn)的命令行看到消息輸出:hello, IPFS指南,飛向未來(lái)!
兩個(gè)跨越了不同網(wǎng)絡(luò ),不同地域的IPFS節點(diǎn)進(jìn)行pubsub功能的通信。
實(shí)際上,pubsub功能不僅僅之只限于兩個(gè)直連的節點(diǎn)之間,還可以通過(guò)中間節點(diǎn)進(jìn)行中轉。
例如:有A,B,C三個(gè)節點(diǎn)
A鏈接到B
B連接到C
A與C并不直接連接。
那么A仍然可以訂閱收到來(lái)自于C的消息。這對于一些復雜的網(wǎng)絡(luò )環(huán)境里面非常有用,比如在一些NAT不太友好的網(wǎng)絡(luò )環(huán)境。
pubsub相關(guān)的命令使用:
pubsub功能有很多用途,廣大開(kāi)發(fā)者可以開(kāi)腦洞基于這樣的功能構建出來(lái)自己的應用。
目前IPFS上有兩個(gè)標桿應用是基于pubsub功能進(jìn)行搭建的。
來(lái)源:知乎專(zhuān)欄:IPFS指南(作者:飛向未來(lái))
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站