net/http에서 핸들러 등록 취소
net/http에서 핸들러를 등록하면 URL 패턴이 특정 HTTP 핸들러와 연결됩니다. 그러나 URL 패턴에 대한 핸들러를 생성하는 것과 유사하게 런타임 시 핸들러 등록을 취소해야 할 수도 있습니다.
제공된 예는 "/123과 같은 URL에 대한 핸들러를 동적으로 생성하기 위한 핸들러 팩토리 생성을 보여줍니다. /"을 선택하여 등록하세요. "/123/"에 대한 핸들러 등록을 취소하기 위한 해당 "/destroy/123" URL이 없습니다.
등록 취소 기능을 구현하려면 GOROOT에서 코드를 복사하여 사용자 정의 ServerMux를 생성할 수 있습니다. /src/pkg/net/http/server.go. 사용자 정의 ServerMux에는 등록 취소 방법이 필요합니다. 이는 맵을 잠그고 패턴과 관련된 항목을 삭제하여 구현할 수 있습니다.
<code class="go">func (mux *MyMux) Deregister(pattern string) error { mux.mu.Lock() defer mux.mu.Unlock() del(mux.m, pattern) return nil }</code>
이 사용자 정의 Mux를 사용하려면 HTTP 서버에 대한 핸들러로 구성할 수 있습니다. 다른 고루틴에서 deregister()를 호출하여 mux를 수정하는 것은 안전하며 ListenAndServe()에 의한 메시지 라우팅에 영향을 미칩니다.
<code class="go">mux := newMux() mux.Handle("/create", &factory) srv := &http.Server { Addr: localhost:8080 Handler: mux, } srv.ListenAndServe()</code>
등록 취소 메소드를 사용하여 사용자 정의 ServerMux를 구현하면 핸들러 관리가 가능해집니다. 동적으로 등록하고 런타임에 등록을 취소합니다.
위 내용은 Go의 `net/http` 패키지에서 핸들러를 어떻게 등록 취소할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!