diff --git a/wshandler/wshandler.go b/wshandler/wshandler.go index 35ce28f..17c6756 100644 --- a/wshandler/wshandler.go +++ b/wshandler/wshandler.go @@ -295,10 +295,20 @@ func (ws *WebsocketHandler) mainLoop(ctx context.Context) { return room } + shutdownConn := func(c *wsconn) { + defer func() { + r := recover() + if r != nil { + logger.Println(r) + } + }() + ws.ClientDisconnected(c) + c.Close() + } + defer func() { for _, conn := range entireConns { - ws.ClientDisconnected(conn) - conn.Close() + shutdownConn(conn) } }()