func (c *Client) Handle(method string, handlerFunc interface{}) {
	addHandler(c.handlers, method, handlerFunc)
}
Handle registers the handler function for the given method. If a handler already exists for method, Handle panics.
package rpc2
import (
	"errors"
	"io"
	"log"
	"reflect"
	"sync"
)
type Client struct {
	mutex      sync.Mutex  
	sending    sync.Mutex
	request    Request  
	seq        uint64
	pending    map[uint64]*Call
	closing    bool
	shutdown   bool
	server     bool
	codec      Codec
	handlers   map[string]*handler
	disconnect chan struct{}
}
func NewClient(conn io.ReadWriteCloser) *Client {
	return NewClientWithCodec(newGobCodec(conn))
}
func NewClientWithCodec(codec Codec) *Client {
	return &Client{
		codec:      codec,
		pending:    make(map[uint64]*Call),
		handlers:   make(map[string]*handler),
		disconnect: make(chan struct{}),
		seq:        1,  
	}
}
func (c *Client) Run() {
	c.readLoop()
}
func (c *Client) DisconnectNotify() chan struct{} {
	return c.disconnect
}