为何运行在HTTP协议下的以太坊节点仍可监听JSON-RPC事件?
相关问题解答
- Ganache本身默认同时支持HTTP和WebSocket协议:v7及以上版本的Ganache会在同一个配置的监听端口上同时兼容两种协议,无需单独设置WebSocket端口。你在MetaMask中配置的Ganache HTTP地址,MetaMask会自动探测到同端口的WebSocket支持,实际发起
eth_subscribe请求时走的是WebSocket全双工链路,符合JSON-RPC API的订阅规范要求。 - MetaMask确实做了HTTP节点的订阅兼容:如果用户接入的节点完全不支持WebSocket连接,MetaMask会对上层
eth_subscribe调用做降级处理,底层通过定期轮询eth_getFilterChanges接口来模拟订阅事件的推送效果,上层dapp的调用逻辑不需要做任何调整。 - 对于dapp开发者的结论:只要你基于MetaMask提供的标准EIP-1193提供者接口开发,无需额外关心用户使用的节点是否支持全双工连接,MetaMask已经完成了不同连接场景的兼容封装。
内容的提问来源于stack exchange,提问作者Ilya Loskutov
相关产品推荐
相关产品推荐

