Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 618 Bytes

File metadata and controls

34 lines (25 loc) · 618 Bytes

HTTP over Unix Domain Sockets

Server

直接把net.Listener注入http.Serve 即可

l, err := net.Listen("unix", sockFileName)
if err != nil {
    log.Fatal("Listen error: ", err)
}
defer l.Close()


http.Serve(l,
    ...,
)

Client

注入http.Client.Transport,直接無視Dialprotoaddr,直接返回net.Dial("unix", sockFileName)

client := &http.Client{
    Transport: &http.Transport{
        Dial: func(proto, addr string) (conn net.Conn, err error) {
            return net.Dial("unix", sockFileName)
        },
    },
}

resp, err := client.Get("http://xxx/")