From 4e69b5b9fb0dccbd2190ac6ae7d8318d9add9908 Mon Sep 17 00:00:00 2001 From: mountain Date: Sat, 12 Aug 2023 19:26:16 +0900 Subject: [PATCH] =?UTF-8?q?sender=20callback=20=EB=93=B1=EB=A1=9D=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wshandler/wshandler.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/wshandler/wshandler.go b/wshandler/wshandler.go index 0eab4ff..4c8e523 100644 --- a/wshandler/wshandler.go +++ b/wshandler/wshandler.go @@ -97,7 +97,23 @@ type Sender struct { Region string Accid primitive.ObjectID Alias string - DisconnectedCallbacks map[string]func() + disconnectedCallbacks map[string]func() +} + +func (s *Sender) RegistDisconnectedCallback(name string, f func()) (old func()) { + if s.disconnectedCallbacks == nil { + s.disconnectedCallbacks = make(map[string]func()) + } + + old = s.disconnectedCallbacks[name] + s.disconnectedCallbacks[name] = f + return +} + +func (s *Sender) PopDisconnectedCallback(name string) func() { + old := s.disconnectedCallbacks[name] + delete(s.disconnectedCallbacks, name) + return old } type EventReceiver interface {