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

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

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

@ -39,8 +39,9 @@ import (
"github.com/ethereum/go-ethereum/miner" "github.com/ethereum/go-ethereum/miner"
"github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rlp"
rpchttp "github.com/ethereum/go-ethereum/rpc/http" 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/state"
"github.com/ethereum/go-ethereum/websocket" // "github.com/ethereum/go-ethereum/websocket"
"github.com/ethereum/go-ethereum/xeth" "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") clilogger.Infoln("Starting WebSockets")
sock := websocket.NewWebSocketServer(eth) // sock := websocket.NewWebSocketServer(eth)
go sock.Serv() // 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 var gminer *miner.Miner

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