Web3以太坊订阅并非一直有效

时间:2019-02-20 11:17:13

标签: javascript node.js ethereum wss web3

有时,当subscribe方法不起作用时,我会遇到此问题。而且我找不到调试订阅操作是否启动的方法。甚至“错误”和“结束”处理程序似乎也不起作用。

async initWssServer(e = false) {
    if (e) {
        console.error('WSS disconnected')
        console.error(e)
    }

    this.server = await new Web3('wss://mainnet.infura.io/ws')
    this.events = events

    const subscribe = this.server.eth.subscribe('newBlockHeaders', async (err, data) => {
        if (err) {
            return this.initWssServer(err)
        }

        return this.events.emit('new_block', data)
    })

    subscribe.on('error', e => this.initWssServer(e))
    subscribe.on('end', e => this.initWssServer(e))

    return true
}

有没有一种方法可以检查订阅是否已开始以及是否已开始-重播它或执行其他操作?

0 个答案:

没有答案