在 Golang 中,多路复用器类似于硬件中的多路复用器,它可以将一些输入信号转换为一些输出信号。
我给你举了一个简单的例子。
type CustomMultiplexer struct {
}
给定的多路复用器必须实现
ServeHTTP
方法,以便在 HTTP 中注册以服务于输入。
func (mux CustomMultiplexer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" {
SimpleRequestHandler(w, r)
return
}
http.NotFound(w, r)
return
}
以下是我的SimpleRequestHandler
方法:
func SimpleRequestHandler(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case http.MethodGet:
mySimpleGetRequestHandler(w, r)
break
default:
http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
break
}
}
现在我可以使用我的CustomMultiplxere
来在传入请求之间进行复用。
func main() {
customServer := CustomServer{}
err := http.ListenAndServe(":9001", &customServer)
if err != nil {
panic(err)
}
}
http.HandleFunc
方法作为一个简单的多路复用器。
http.DefaultServeMux
。 - hobbs