Ejemplo n.º 1
0
        public FindPeersResult QueryFindNode(NodeId target)
        {
            var result = new FindPeersResult()
            {
                Found = false,
                Nodes = VistedNodes.Take(8).ToList(),
                //Nodes = VistedNodes.OrderByDescending(n => n.LastSeen).Take(8).ToList(),
            };

            return(result);
        }
Ejemplo n.º 2
0
 public void Add(Node node)
 {
     lock (NextNodes)
     {
         if (!VistedNodes.Contains(node) && NextNodes.Count < MaxWaitCount)
         {
             NextNodes.Enqueue(node);
             lock (VistedNodes)
             {
                 VistedNodes.Add(node);
             }
         }
     }
 }
Ejemplo n.º 3
0
 private void MessageLoop_ReceivedMessage(object sender, MessageEventArgs e)
 {
     if (e.Message is FindNodeResponse)
     {
         var r = e.Message as FindNodeResponse;
         Add(Node.FromCompactNode(r.Nodes));
     }
     if (VistedNodes.Count > MaxCacheCount)
     {
         lock (VistedNodes)
         {
             VistedNodes.Clear();
         }
     }
 }