From 3f5cbf2bcd5b9645b0d3a0eac4d82449a004859d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E6=96=B0=E9=A3=9E?= Date: Wed, 19 Dec 2018 17:56:52 +0800 Subject: [PATCH] fix: Deregister subscribers --- http.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/http.go b/http.go index 3469c4d..de40ed3 100644 --- a/http.go +++ b/http.go @@ -189,7 +189,20 @@ func (h *httpServer) Deregister() error { log.Logf("Deregistering node: %s", opts.Name+"-"+opts.Id) service := serviceDef(opts) - return opts.Registry.Deregister(service) + if err := opts.Registry.Deregister(service); err != nil { + return err + } + + h.Lock() + for sb, subs := range h.subscribers { + for _, sub := range subs { + log.Logf("Unsubscribing from topic: %s", sub.Topic()) + sub.Unsubscribe() + } + h.subscribers[sb] = nil + } + h.Unlock() + return nil } func (h *httpServer) Start() error {