Update CLI to use new Websocket RPC

Use “wsport” flag to change default port
This commit is contained in:
Taylor Gerring 2015-01-27 12:28:58 -06:00
parent b8e7b8e2e1
commit 5f50fe7a4a
4 changed files with 19 additions and 5 deletions

View File

@ -41,6 +41,7 @@ var (
StartRpc bool
StartWebSockets bool
RpcPort int
WsPort int
NatType string
PMPGateway string
OutboundPort string
@ -96,6 +97,7 @@ func Init() {
flag.StringVar(&PMPGateway, "pmp", "", "Gateway IP for PMP")
flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
flag.IntVar(&WsPort, "wsport", 40404, "port to start websocket rpc server on")
flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
flag.BoolVar(&StartWebSockets, "ws", false, "start websocket server")
flag.BoolVar(&NonInteractive, "y", false, "non-interactive mode (say yes to confirmations)")

View File

@ -131,7 +131,7 @@ func main() {
}
if StartWebSockets {
utils.StartWebSockets(ethereum)
utils.StartWebSockets(ethereum, WsPort)
}
utils.StartEthereum(ethereum, UseSeed)

View File

@ -39,8 +39,9 @@ import (
"github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/rlp"
rpchttp "github.com/ethereum/go-ethereum/rpc/http"
rpcws "github.com/ethereum/go-ethereum/rpc/websocket"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/websocket"
// "github.com/ethereum/go-ethereum/websocket"
"github.com/ethereum/go-ethereum/xeth"
)
@ -201,11 +202,18 @@ func StartRpc(ethereum *eth.Ethereum, RpcPort int) {
}
}
func StartWebSockets(eth *eth.Ethereum) {
func StartWebSockets(eth *eth.Ethereum, wsPort int) {
clilogger.Infoln("Starting WebSockets")
sock := websocket.NewWebSocketServer(eth)
go sock.Serv()
// sock := websocket.NewWebSocketServer(eth)
// go sock.Serv()
var err error
eth.WsServer, err = rpcws.NewWebSocketServer(eth, wsPort)
if err != nil {
clilogger.Errorf("Could not start RPC interface (port %v): %v", wsPort, err)
} else {
go eth.WsServer.Start()
}
}
var gminer *miner.Miner

View File

@ -67,6 +67,7 @@ type Ethereum struct {
blockSub event.Subscription
RpcServer rpc.RpcServer
WsServer rpc.RpcServer
keyManager *crypto.KeyManager
clientIdentity p2p.ClientIdentity
@ -276,6 +277,9 @@ func (s *Ethereum) Stop() {
if s.RpcServer != nil {
s.RpcServer.Stop()
}
if s.WsServer != nil {
s.WsServer.Stop()
}
s.txPool.Stop()
s.eventMux.Stop()
s.blockPool.Stop()