void OnDiscoveredServer(NetworkDiscovery.DiscoveryInfo info)
        {
            if (!IsRefreshing && !IsLookingUpServer(info.EndPoint))
            {
                return;
            }

            int index = m_discoveredServers.FindIndex(item => item.EndPoint.Equals(info.EndPoint));

            if (index < 0)
            {
                // server is not in the list
                // add it
                m_discoveredServers.Add(info);
            }
            else
            {
                // server is in the list
                // update it
                m_discoveredServers[index] = info;
            }
        }
        void Connect(NetworkDiscovery.DiscoveryInfo info)
        {
            if (null == NetworkManager.singleton)
            {
                return;
            }
            if (null == Transport.activeTransport)
            {
                return;
            }
            if (!(Transport.activeTransport is TelepathyTransport))
            {
                Debug.LogErrorFormat("Only {0} is supported", typeof(TelepathyTransport));
                return;
            }

            // assign address and port
            NetworkManager.singleton.networkAddress = info.EndPoint.Address.ToString();
            ((TelepathyTransport)Transport.activeTransport).port = ushort.Parse(info.KeyValuePairs[NetworkDiscovery.kPortKey]);

            NetworkManager.singleton.StartClient();
        }