咨询下rpc.Dial("tcp", "127.0.0.1:1899")

hellsam · 2020-12-17 15:15:55 · 748 次点击
// Dial connects to an RPC server at the specified network address.
func Dial(network, address string) (*Client, error) {
    conn, err := net.Dial(network, address)
    if err != nil {
        return nil, err
    }
    return NewClient(conn), nil
}

这是go标准库提供的Dial源码,确实没有办法传超时时间,但是实现非常简单,所以稍微改造一下就能控制超时, 自己写一个Dial的方法如下:

func DialWithTimeout(network, address string, timeout time.Duration) (*rpc.Client, error) {
    conn, err := net.DialTimeout(network, address, timeout)
    if err != nil {
        return nil, err
    }
    return rpc.NewClient(conn), nil
}
#1