From 2a23cedc6d441a793c4febc9fd987506a4231c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20K=C3=A1n=C4=9B?= Date: Fri, 21 Jun 2019 22:48:37 +0200 Subject: [PATCH] Exit goroutine when client disconnects --- main.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 3fd8fe0..9da5bdf 100644 --- a/main.go +++ b/main.go @@ -57,11 +57,22 @@ func main() { if err != nil { log.Println(err) } - for n := range nudges { - log.Println(n) - err := con.WriteJSON(n) - if err != nil { - log.Println(err) + var quit = make(chan bool) + con.SetCloseHandler(func(code int, text string) error { + quit <- true + return nil + }) + for { + select { + case <-quit: + return + case n := <-nudges: + log.Println(n) + err := con.WriteJSON(n) + if err != nil { + log.Println(err) + return + } } } })