Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Saya Boleh Menyahdaftar Pengendali dalam Pakej net/http?
Nyahdaftar Pengendali dalam net/http
Dalam net/http, pengendali boleh didaftarkan secara dinamik pada corak URL tertentu menggunakan http.Handle fungsi. Walau bagaimanapun, pemultipleks lalai tidak menyediakan mekanisme untuk menyahdaftar pengendali.
Satu pendekatan untuk menyahdaftar pengendali adalah dengan mencipta pemultipleks tersuai yang memanjangkan jenis http.ServeMux standard. Pemultipleks tersuai ini boleh memasukkan kaedah untuk membatalkan pendaftaran pengendali. Sebagai contoh, kod berikut mentakrifkan pemultipleks tersuai yang menambahkan kaedah 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>
Setelah pemultipleks tersuai ditakrifkan, ia boleh digunakan untuk mengendalikan permintaan. Contohnya:
<code class="go">mux := new(MyMux) mux.Handle("/create", &factory) srv := &http.Server{ Addr: "localhost:8080", Handler: mux, } srv.ListenAndServe()</code>
Memanggil kaedah Deregister pada pemultipleks tersuai akan menghentikan pengendali yang sepadan daripada melayan permintaan. Ambil perhatian bahawa pengendali mesti didaftarkan menggunakan contoh pemultipleks tersuai yang sama agar pembatalan pendaftaran berkesan.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menyahdaftar Pengendali dalam Pakej net/http?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!