按照http
库中的说明定义以下内容:
func Handle(pattern string, handler Handler)
type Handler interface { ServeHTTP(*Conn, *Request) }
如何通过给它一个额外的参数(并告诉它如何处理参数)来改进现有的处理程序(例如,websocket.Draft75Handler
)?
我正在尝试创建一个包含在其中一端的通道的处理程序。它将使用该通道与程序的其他部分进行通信。如何将该通道导入处理函数?
如果这是一个愚蠢的问题,请道歉。我是新手,决定通过阅读教程然后直接进入代码来学习。谢谢你的帮助!
答案 0 :(得分:2)
如果类型是函数,如websocket.Draft75Handler
,则可以将其包装在闭包中:
func MyHandler(arg interface{}) websocket.Draft75Handler {
return func(c *http.ConnConn) {
// handle request
}
}
func main() {
http.Handle("/echo", MyHandler("argument"))
err := http.ListenAndServe(":12345", nil)
if err != nil {
panic("ListenAndServe: " + err.String())
}
}