今天就跟大家聊聊有關(guān)IPFS pubsub功能的使用是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、寧都ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的寧都網(wǎng)站制作公司
發(fā)布訂閱模式(Publish–subscribe pattern),最早是由蘋果公司在 Mac OS 引入。
消息的發(fā)送者(publishers)不直接將消息發(fā)送給接收者(subscriber)。而是將消息分門別類,發(fā)送者并不知道也無需知道接收者的存在。而接收者只需要訂閱一個或者多個類別的消息類,只接收感興趣的消息,不知道也無需知道發(fā)布者的存在。(https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)
寫代碼的朋友對于觀察者模式(Observer)并不陌生。這個有些類似軟件設(shè)計模式里面的觀察者模式(Observer)。但是并不完全相同。pubsub比Observer更加的松耦合。這里不再詳細對比二者的區(qū)別。有興趣的朋友自行Google一下。
pubsub功能目前還屬于ipfs的一個實驗性質(zhì)的功能,如果要開啟pubsub功能,在啟動ipfs daempon的時候需要指定參數(shù): --enable-pubsub-experiment。
下面我們使用具體例子來說明ipfs pubsub 如何使用?
如果還不知道節(jié)點如何搭建,參見之前的文章《如何在IPFS網(wǎng)絡(luò)里面上傳一張圖片》。
A(小編本地節(jié)點):
IPFS節(jié)點ID: QmTrRNgt6M9syRq8ZqM4o92Fgh7avK8v862n2QZLyDPywY
IPFS地址:192.168.162.129(保護隱私,沒有使用公網(wǎng)IP)
B(亞馬遜aws):
IPFS地址:13.231.198.154
IPFS節(jié)點地址; /ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h7Y51BHZMaypzjCnNc1MiVk2H5EZJxWgAuRkLanaK
ipfs daemon --enable-pubsub-experiment
(注意這里需要使用參數(shù) --enable-pubsub-experiment)
刪除節(jié)點A的全部bootstrap地址
ipfs bootstrap rm all
在A節(jié)點添加B節(jié)點為bootstrap節(jié)點
ipfs bootstrap add /ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h7Y51BHZMaypzjCnNc1MiVk2H5EZJxWgAuRkLanaK
ipfs daemon --enable-pubsub-experiment
(注意這里需要使用參數(shù) --enable-pubsub-experiment)
在A節(jié)點上新開一個命令行,執(zhí)行
ipfs pubsub sub flytofuture
這句的意思是我們在節(jié)點A訂閱了消息主題:flytofuture。凡是發(fā)往這個消息主題的消息都會被A節(jié)點接收到。
我們在B節(jié)點對消息主題 flytofuture發(fā)送消息
ipfs pubsub pub flytofuture "hello, IPFS指南,飛向未來!"
這個時候我們就可以在A節(jié)點的命令行看到消息輸出:hello, IPFS指南,飛向未來!
兩個跨越了不同網(wǎng)絡(luò),不同地域的IPFS節(jié)點進行pubsub功能的通信。
實際上,pubsub功能不僅僅之只限于兩個直連的節(jié)點之間,還可以通過中間節(jié)點進行中轉(zhuǎn)。
例如:有A,B,C三個節(jié)點,A鏈接到B,B連接到C,A與C并不直接連接。那么A仍然可以訂閱收到來自于C的消息。這對于一些復(fù)雜的網(wǎng)絡(luò)環(huán)境里面非常有用,比如在一些NAT不太友好的網(wǎng)絡(luò)環(huán)境。
pubsub相關(guān)的命令使用:
ipfs pubsub ls -- 列出來本節(jié)點訂閱的全部主題
ipfs pubsub peers -- 列出來與本節(jié)點相連接的開通pubsub功能的節(jié)點
ipfs pubsub pub -- 發(fā)布數(shù)據(jù)到相應(yīng)的主題
ipfs pubsub sub -- 訂閱主題
pubsub功能有很多用途,廣大開發(fā)者可以開腦洞基于這樣的功能構(gòu)建出來自己的應(yīng)用。
目前IPFS上有兩個標桿應(yīng)用是基于pubsub功能進行搭建的。
orbit-db: 分布式數(shù)據(jù)庫
Orbit: 點對點的聊天工具
看完上述內(nèi)容,你們對IPFS pubsub功能的使用是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。