github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/jsonrpc/client.go (about)

     1  package jsonrpc
     2  
     3  import (
     4  	"net"
     5  	"net/rpc"
     6  	"net/rpc/jsonrpc"
     7  )
     8  
     9  type Client struct {
    10  	conn   net.Conn
    11  	client *rpc.Client
    12  }
    13  
    14  func (c *Client) Listen(address string) error {
    15  	var err error
    16  	c.conn, err = net.Dial("tcp", address)
    17  	if err != nil {
    18  		return err
    19  	}
    20  	c.client = jsonrpc.NewClient(c.conn)
    21  	return nil
    22  }
    23  
    24  func (c *Client) GetLink() *rpc.Client {
    25  	return c.client
    26  }
    27  
    28  func (c *Client) Call(method string, args any, reply any) error {
    29  	return c.client.Call(method, args, reply)
    30  }
    31  
    32  func (c *Client) Close() {
    33  	_ = c.client.Close()
    34  	_ = c.conn.Close()
    35  }