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  }