github.com/number571/tendermint@v0.34.11-gost/rpc/jsonrpc/test/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net/http" 6 7 "github.com/number571/tendermint/libs/log" 8 tmos "github.com/number571/tendermint/libs/os" 9 rpcserver "github.com/number571/tendermint/rpc/jsonrpc/server" 10 rpctypes "github.com/number571/tendermint/rpc/jsonrpc/types" 11 ) 12 13 var routes = map[string]*rpcserver.RPCFunc{ 14 "hello_world": rpcserver.NewRPCFunc(HelloWorld, "name,num", false), 15 } 16 17 func HelloWorld(ctx *rpctypes.Context, name string, num int) (Result, error) { 18 return Result{fmt.Sprintf("hi %s %d", name, num)}, nil 19 } 20 21 type Result struct { 22 Result string 23 } 24 25 func main() { 26 var ( 27 mux = http.NewServeMux() 28 logger = log.MustNewDefaultLogger(log.LogFormatPlain, log.LogLevelInfo, false) 29 ) 30 31 // Stop upon receiving SIGTERM or CTRL-C. 32 tmos.TrapSignal(logger, func() {}) 33 34 rpcserver.RegisterRPCFuncs(mux, routes, logger) 35 config := rpcserver.DefaultConfig() 36 listener, err := rpcserver.Listen("tcp://127.0.0.1:8008", config) 37 if err != nil { 38 tmos.Exit(err.Error()) 39 } 40 41 if err = rpcserver.Serve(listener, mux, logger, config); err != nil { 42 tmos.Exit(err.Error()) 43 } 44 }