jsonrpc2

package module
v0.0.0-...-d18df98 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 24, 2019 License: MIT Imports: 6 Imported by: 3

README

jsonrpc2

a implement rpc-2.0 specification in go.

go语言自带jsonrpc1.0的实现,但是目前都在使用rpc2.0的标准,接着go官方的rpc接口标准,自行实现了jsonrpc2.0。

client demo

读取数据时,可以按照字节流读取,也可以传入对象得到反序列化结果。 字节流在不知道返回值情况和调试的时候很有用。

client, e := jsonrpc2.Dial("tcp", "127.0.0.1:50002")
	if e != nil {
		panic(e)
	}

	var err error

	result2 := make([]byte, 0, 1024)
	err = client.Call("blockchain.block.header", []int{100, 0}, &result2)
	if err != nil {
		panic(err)
	}

	fmt.Println(string(result2))
	client.Close()
server demo
type server struct {
}

func (s *server) Version(vers string, reply *string) error {
	fmt.Println("request ", vers)
	*reply = "1.0"
	return nil
}

func TestServerConn(t *testing.T) {
	rpc.RegisterName("server", new(server))
	conn, err := net.Listen("tcp", ":50003")
	if err != nil {
		panic(err)
	}

	for {
		accept, err := conn.Accept()
		if err != nil {
			t.Error(err)
			continue
		}
		go ServerConn(accept)
	}
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL