我使用的是 web3 版本1.0.0-beta.27
,并且我正在运行一个私有以太坊区块链以进行测试。区块链正在挖矿并且有两个用户,现在我想subscribe
在区块链中进行事件并执行一些操作。代码如下:
var Web3 = require("web3");
var ether_port = 'http://localhost:8545'
var web3 = new Web3(new Web3.providers.HttpProvider(ether_port));
web3.eth.subscribe("pendingTransactions"
, function(err, result){
if (err){ console.log(err) }
else { console.log("result: ", result) }
});
我得到类似的东西:
Error: The current provider doesn't support subscriptions: HttpProvider
at Subscription.subscribe
从某种意义上说,这并不奇怪,因为当我web3.eth.subscribe
在node.js
控制台上这样做时,我得到:
{ [Function] call: undefined }
即使web3-1.0.0
声明该功能的文档也可以使用:https ://web3js.readthedocs.io/en/1.0/web3-eth-subscribe.html 。
那么这仅仅是文档与实际实现不同步的问题吗?我用错了吗?
如果没有实现,那么在链中监听变化的最佳方式是什么?例如,如果我想实时更新用户的账户余额?除了一个简单的实现功能之外,它每隔
n
几分之一秒就对链进行 ping 操作。