func onConnOpen(r kiwi.MessageReceiver, s kiwi.MessageSender) { for { msg, err := r.ReadWhole(1 << 20) if err != nil { log.Println(err) s.SendClose(kiwi.CloseCodeGoingAway, "", true, false) break } if msg.IsText() { if err = router.Serve(msg, s); err != nil { log.Println(err) s.SendClose(kiwi.CloseCodeGoingAway, "", true, false) } } else if msg.IsClose() { s.SendClose(kiwi.CloseCodeNormalClosure, "", true, false) break } } }