public void InvalidateOldTokens() { Assert.IsTrue(manager.VerifyToken(node, token), "#1"); manager.RefreshTokens(); Assert.IsTrue(manager.VerifyToken(node, token), "#2"); manager.RefreshTokens(); Assert.IsFalse(manager.VerifyToken(node, token), "#3"); }
public DhtEngine() { var monitor = new TransferMonitor(); BucketRefreshTimeout = TimeSpan.FromMinutes(15); MessageLoop = new MessageLoop(this, monitor); Monitor = monitor; RoutingTable = new RoutingTable(); State = DhtState.NotReady; TokenManager = new TokenManager(); Torrents = new Dictionary <NodeId, List <Node> > (); MainLoop.QueueTimeout(TimeSpan.FromMinutes(5), () => { if (!Disposed) { TokenManager.RefreshTokens(); } return(!Disposed); }); }
/// <summary> /// 构造DHT引擎 /// </summary> /// <param name="listener">监听对象</param> public DhtEngine(IDhtListener listener) { if (listener == null) { throw new ArgumentNullException(nameof(listener)); } BucketRefreshTimeout = TimeSpan.FromMinutes(15); MessageLoop = new MessageLoop(this, listener); RoutingTable = new RoutingTable(); State = DhtState.NotReady; TokenManager = new TokenManager(); Torrents = new Dictionary <NodeId, List <Node> > (); MainLoop.QueueTimeout(TimeSpan.FromMinutes(5), () => { if (!Disposed) { TokenManager.RefreshTokens(); } return(!Disposed); }); }