net/http에서 핸들러 등록 취소
net/http에서 http.Handle을 사용하여 특정 URL 패턴에 핸들러를 동적으로 등록할 수 있습니다. 기능. 그러나 기본 멀티플렉서는 핸들러 등록 취소를 위한 메커니즘을 제공하지 않습니다.
핸들러 등록을 취소하는 한 가지 접근 방식은 표준 http.ServeMux 유형을 확장하는 사용자 정의 멀티플렉서를 생성하는 것입니다. 이 사용자 정의 멀티플렉서에는 핸들러 등록 취소를 위한 메소드가 포함될 수 있습니다. 예를 들어, 다음 코드는 Deregister 메소드를 추가하는 사용자 정의 멀티플렉서를 정의합니다.
<code class="go">type MyMux struct { *http.ServeMux mu sync.Mutex // Guards the m map m map[string]http.Handler } func (mux *MyMux) Deregister(pattern string) error { mux.mu.Lock() defer mux.mu.Unlock() if _, ok := mux.m[pattern]; !ok { return errors.New("handler not registered") } delete(mux.m, pattern) return nil }</code>
사용자 정의 멀티플렉서를 정의하고 나면 요청을 처리하는 데 사용할 수 있습니다. 예를 들면 다음과 같습니다.
<code class="go">mux := new(MyMux) mux.Handle("/create", &factory) srv := &http.Server{ Addr: "localhost:8080", Handler: mux, } srv.ListenAndServe()</code>
사용자 지정 멀티플렉서에서 Deregister 메서드를 호출하면 해당 처리기가 요청 처리를 중지합니다. 등록 취소가 적용되려면 동일한 사용자 정의 멀티플렉서 인스턴스를 사용하여 핸들러를 등록해야 합니다.
위 내용은 net/http 패키지에서 처리기를 어떻게 등록 취소할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!