首页 > 后端开发 > Golang > 如何在 Go 的 net/http 中注销 HTTP 处理程序?

如何在 Go 的 net/http 中注销 HTTP 处理程序?

Mary-Kate Olsen
发布: 2024-11-05 17:01:02
原创
911 人浏览过

How to Deregister HTTP Handlers in Go's net/http?

处理 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板