إلغاء تسجيل المعالج في net/http
في net/http، يمكن تسجيل المعالجات ديناميكيًا في أنماط URL محددة باستخدام 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