如何用RPC查詢Substrate storage(2)

Substrate底層提供了豐富的RPC訪問接口和鏈上交互,具體見https://polkadot.js.org/api/substrate/rpc.html。Substrate的RPC server實現(xiàn)了HTTP和WebSocket兩種協(xié)議供客戶端訪問,默認的服務端口分別是9933和9944。實現(xiàn)RPC HTTP client比較簡單,使用支持HTTP協(xié)議的第三方庫即可,比如reqwest。這里介紹使用第三庫ws封裝一個RPC WebSoket client 模塊,通過它可以方便快捷訪問Substrate RPC server。

首先在cargo.xml加入ws庫:

然后定義WsClient struct,實現(xiàn)幾個handler:

on_open()方法當client和server建立連接后被調用,它向server發(fā)送數(shù)據(jù)請求;on_message()方法當server返回數(shù)據(jù)時被調用,on_message_fn是一個回調函數(shù),負責把數(shù)據(jù)發(fā)送給接收方。on_get_request_msg()就是具體的回調函數(shù)。


on_message()是模塊中唯一一個public函數(shù),它首先建立一個異步通信channel,得到發(fā)送端和接收端的通信句柄,然后調用ws庫的connect()方法和server建立連接,設置回調函數(shù),發(fā)送數(shù)據(jù),最后等待10秒時間把接收到的數(shù)據(jù)作為函數(shù)返回結果。

可用如下方式使用本模塊:

That's all.

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容