gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:53 25 4
gpt4 key购买 nike

根据 http 库中的说明定义以下内容:

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

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

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

如果这是一个愚蠢的问题,我们深表歉意。我是新手,决定通过阅读教程来学习,然后直接跳到代码中。感谢您的帮助!

最佳答案

如果类型是一个函数,比如 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())
}
}

关于http - 自定义 Go 的 http 库中的现有处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com