public Task <bool> Verify(INetworkingClientPool networkingClientPool, ManagedWebSocket webSocket, string token,
                           out INetworkingClient client)
 {
     if (!networkingClientPool.TryGet(token, out client))
     {
         return(Task.FromResult(false));
     }
     //TODO: check if already has websocket ect. client.WebSocket
     webSocket.Extra[ClientExtra] = client;
     return(Task.FromResult(true));
 }
        public Task <bool> Verify(INetworkingClientPool networkingClientPool, ManagedWebSocket managedWebSocket,
                                  string token, out INetworkingClient client)
        {
            if (networkingClientPool.TryGet(token, out client))
            {
                //managedWebSocket.Extra.TryAdd("client", client);

                /*if (client.WebSocket != managedWebSocket)
                 * {
                 *  webSocket.CloseWebSocket(client.WebSocket);
                 * }
                 *
                 * client.WebSocket = managedWebSocket;*/
                //return Task.FromResult(true);
                networkingClientPool.Remove(client);
                //TODO: maybe try to reuse clients later when client can send if it was a reconnect or new connection in auth event
            }

            client           = AltNetworking.CreateClient(token);
            client.WebSocket = managedWebSocket; //TODO: maybe do that automatically, but we would lost freedom
            managedWebSocket.Extra.TryAdd("client", client);
            return(Task.FromResult(true));
        }