"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं नेट/एचटीटीपी पैकेज में हैंडलर्स को कैसे अपंजीकृत कर सकता हूं?

मैं नेट/एचटीटीपी पैकेज में हैंडलर्स को कैसे अपंजीकृत कर सकता हूं?

2024-12-21 को प्रकाशित
ब्राउज़ करें:772

How Can I Unregister Handlers in the net/http Package?

नेट/http में एक हैंडलर को अपंजीकृत करना

नेट/http में, हैंडलर को http.Handle का उपयोग करके गतिशील रूप से विशिष्ट यूआरएल पैटर्न में पंजीकृत किया जा सकता है समारोह। हालाँकि, डिफ़ॉल्ट मल्टीप्लेक्सर अपंजीकृत हैंडलर के लिए एक तंत्र प्रदान नहीं करता है।

एक हैंडलर को अपंजीकृत करने का एक तरीका एक कस्टम मल्टीप्लेक्सर बनाना है जो मानक http.ServeMux प्रकार का विस्तार करता है। इस कस्टम मल्टीप्लेक्सर में हैंडलर को अपंजीकृत करने की एक विधि शामिल हो सकती है। उदाहरण के लिए, निम्नलिखित कोड एक कस्टम मल्टीप्लेक्सर को परिभाषित करता है जो एक डीरजिस्टर विधि जोड़ता है:

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
}

एक बार कस्टम मल्टीप्लेक्सर परिभाषित हो जाने के बाद, इसका उपयोग अनुरोधों को संभालने के लिए किया जा सकता है। उदाहरण के लिए:

mux := new(MyMux)
mux.Handle("/create", &factory)

srv := &http.Server{
    Addr:    "localhost:8080",
    Handler: mux,
}
srv.ListenAndServe()

कस्टम मल्टीप्लेक्सर पर डीरजिस्टर विधि को कॉल करने से संबंधित हैंडलर को सर्विसिंग अनुरोधों से रोक दिया जाएगा। ध्यान दें कि डीरजिस्ट्रेशन प्रभावी होने के लिए हैंडलर को उसी कस्टम मल्टीप्लेक्सर इंस्टेंस का उपयोग करके पंजीकृत होना चाहिए।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3