public Task SendMessageToAll(MessageResponse message, CancellationToken token = default(CancellationToken)) { var tasks = new List <Task>(); foreach (var pair in ConnectionManager.GetAll()) { if (token.IsCancellationRequested) { break; } if (pair.Value.State == WebSocketState.Open) { tasks.Add(SendMessage(pair.Value, message, token)); } } return(Task.WhenAll(tasks.ToArray())); }