我正在使用以下端点连接到 RSKj:
ws://localhost:4444/
...但是,我无法连接。
请注意,等效的 HTTP 端点http://localhost:4444/
对我有用,所以我知道我的 RSKj 节点运行正常。
我需要监听newBlockHeaders
,所以我更喜欢使用 WebSockets(而不是 HTTP)。
我怎样才能做到这一点?
RSKj 默认4444
用作 HTTP 传输的端口;并4445
作为 Websockets 传输的端口。另请注意,websockets 端点不是 at /
,而是 at websocket
。因此ws://localhost:4445/websocket
用作您的端点。
如果您使用的是 web3.js,则可以使用web3
以下命令创建一个通过 Websockets 连接的实例:
const Web3 = require('web3');
const wsEndpoint = 'ws://localhost:4445/websocket';
const wsProvider =
new Web3.providers.WebsocketProvider(wsEndpoint);
const web3 = new Web3(wsProvider);
您问题的第二部分可以使用eth_subscribe
on来完成newBlockHeaders
。像这样使用web3
上面的实例:
// eth_subscribe newBlockHeaders
web3.eth.subscribe('newBlockHeaders', function(error, blockHeader) {
if (!error) {
// TODO something with blockHeader
} else {
// TODO something with error
}
});