【manbext客户端下载】我们如何处理web3js中的区块链重新连接

本文摘要:本文将学习如何自学如何在Web3Js自动处理生产环境中使用区块链插入。

manbext客户端下载

本文将学习如何自学如何在Web3Js自动处理生产环境中使用区块链插入。以下叙述的方法仅限于Web3Js版本1.0.0-beta.35,但也仅限于顺利的1.2 *版本。如果问题描述团队在生产环境中使用Web3Js,则必须意识到用于处理块链插入或重新启动的新连接功能没有内置到Web3Js中。因此,通常,如果连接下降,则需要重新启动NodeJS服务器以再次连接到区块链。

这不是一个简单的方法。解决方案让我们考虑如何优雅地处理NodeJS中的区块链插入。

manbext客户端下载

在Web3Js库中,程序获取了以下事件连接——创建连接错误——程序错误完成——程序连接完成。断开连接后,可以使用中止事件重新启动新的Web3Js连接。让我们看看一个例子。

File connection.js在此文件中处理NodeJS和块链之间的联系。新的区块链已连接,并返回到Web3活动连接对象。const web3=require(‘web3’ ); let hasProviderEnded=false,web 3实例,reconnectInterval=10000; asyncfunctionnewblockchainconnection (websocketprovider,end callback ) {//createnewproviderconstprovider=new hasproviderended=//connecteventfireswhentheconnectionestablishedsuccessfully.provider.on (‘ connect ‘, ()=console.) //erroreventfireswheneverthereisanerrorresponsefromblockchainandthiseventalsohasanerrorobjectandmessagepropertyoferrorgivesust he orprovider.on(‘error ‘,(err)=console.log(err.message ) ); //endeventfireswhenevertheconnectionendisdetected.sowheneverthiseventfireswewilltrytoreconnecttoblockchainprovider . async (esync handlemultipleeventcallssentbyweb3jslibraryif (hasproviderended ) return; //settinghashproviderendedtotrueassometimestheendeventisfiredmultipletimesbytheproviderhasproviderended=true; //resetthecurrentproviderprovider.reset (); //removingallthelistenersofprovider.provider.remove all listeners (‘ connect ‘ ); provider.remove all listeners (‘ error ‘ ); provider.remove all listeners (‘ end ‘ ); settimeout ()={//emittingtherestarteventaftersometimetoallowblockchaintocompletestartup//wearelisteningtothiseventintheotherff reconnectInterval; ); if (web3instance==undefined ) web3instance=new web3(provider ); else web 3实例. set provider (provider ); 返回web 3实例; } module.exports={ newblockchainconnection } fileapp。

本文关键词:manbext客户端下载

本文来源:manbext客户端下载-www.ntoolkit.com