Иногда я сталкиваюсь с этой проблемой, когда метод подписки не работает.И я не могу найти способ отладки, запущено действие подписки или нет.Даже обработчики «error» и «end» не работают.
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
}
Есть ли способ проверить, началась ли подписка, а если нет - воспроизвести ее или сделать что-то вместо этого?