在Go的http库中自定义现有处理程序

http库中所述,定义了以下内容:

func Handle(pattern string, handler Handler)
type Handler interface { ServeHTTP(*Conn, *Request) }

我如何websocket.Draft75Handler通过给它一个附加的参数(并告诉它如何处理该参数)来改进现有的处理程序(例如)?

我正在尝试创建一个在其中包含一个通道一端的处理程序。它将使用该频道与程序的其他部分进行对话。我怎样才能使该通道进入处理程序函数?

抱歉,这是一个愚蠢的问题。我是新手,因此决定通过阅读教程来学习,然后直接跳入代码。谢谢你的帮助!


梦里花落0921
浏览 197回答 1
1回答

繁星coding

如果类型是函数(如)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())    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go