处理 net/http 中的注销
net/http 中的 HTTP 处理程序可以动态注册和注销,以提供处理请求的灵活性。要取消注册处理程序,可以创建自定义 ServerMux。
实现自定义 ServerMux
从 Go 源代码 (GOROOT/src/pkg) 复制 ServerMux 的代码/net/http/server.go,第 837-939 行)。将 Deregister 方法添加到自定义 ServerMux,以从模式到处理程序映射中删除处理程序:
用法
创建自定义 ServerMux 的实例并像往常一样处理“/create”路由:
将自定义 ServerMux 设置为 Handler对于 HTTP 服务器:
取消注册
要取消注册处理程序,只需调用 ServerMux 上的 Deregister 方法即可:
这将修改服务器的路由行为,后续对“/123/*”的请求将不再由之前注册的处理
安全修改
通过从另一个 goroutine 调用 deregister() 来修改 ServerMux 是安全的,并且会更新服务器的路由逻辑。
以上是如何在 Go 的 net/http 中注销 HTTP 处理程序?的详细内容。更多信息请关注PHP中文网其他相关文章!