Skip to main content

web3.setProvider

设置服务提供器:web3.setProvider()方法用来修改指定模块的底层通讯服务提供器。

调用方法

web3.setProvider(myProvider)
web3.eth.setProvider(myProvider)
web3.shh.setProvider(myProvider)
web3.bzz.setProvider(myProvider)
...

注意:当在web3上直接调用setProvider()方法时,将为所有其他子模块设置服务提供器,例如web3.eth和web3.shh。 但web3.bzz不受影响,因为该子模块始终使用独立的服务提供器。


参数

Object - myProvider: 有效的服务提供器对象。

返回值

Boolean

示例代码

let web3 = require('web3');
let web3 = new Web3('http://localhost:8545');
// 或者
let web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

// 改变服务提供器
web3.setProvider('ws://localhost:8546');
// 或者
web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));

// 在node.js中使用IPC服务提供器
let net = require('net');
let web3 = new Web3('/Users/myuser/Library/Ethereum/geth.ipc', net); // mac os 路径
// 或者
let web3 = new Web3(new Web3.providers.IpcProvider('/Users/myuser/Library/Ethereum/geth.ipc', net)); // mac os path
// 在windows下的路径是: "\\\\.\\pipe\\geth.ipc"
// 在linux下的路径是: "/users/myuser/.ethereum/geth.ipc"