func removeChannelGroups(pubnub *messaging.Pubnub, groups []string) { successChannel := make(chan []byte, 1) errorChannel := make(chan []byte, 1) for _, group := range groups { // fmt.Println("Removing group", group) pubnub.ChannelGroupRemoveGroup(group, successChannel, errorChannel) select { case <-successChannel: // fmt.Println("Group removed") case <-errorChannel: fmt.Println("Channel group removal error") case <-timeout(): fmt.Println("Channel group removal timeout") } } }