public void Handle(BotMessage botMessage) { var msg = botMessage.Message as HelloAckMessage; var peerInfo = _peerList[botMessage.Header.BotId]; peerInfo.Handshaked = true; peerInfo.BotVersion = msg.BotVersion; peerInfo.CfgVersion = msg.CfgVersion; //ClientWorker.Instance.QueueOneTime(() => // _messageManager.Send(new PingMessage(), botMessage.Header.BotId), TimeSpan.FromMinutes(1)); //_peerList.TryRegister(new PeerInfo(botMessage.Header.BotId, endpoint))) //_versionManager.CheckBotVersion(msg.BotVersion, msg.Header.BotId, endpoint); //_versionManager.CheckCfgVersion(msg.CfgVersion, msg.Header.BotId, endpoint); foreach (var peer in msg.Peers) { if (_peerList.TryRegister(new PeerInfo(peer.BotId, peer.EndPoint))) { var hello = new HelloSynMessage(); _messageManager.Send(hello, peer.BotId); } } }
public void Bootstrap(List <PeerInfo> peers) { Logger.Info("Bootstrapping init. {0} found endpoints", peers.Count); foreach (var peer in peers) { _peerList.TryRegister(peer); var hello = new HelloSynMessage(); _messagesManager.Send(hello, peer.BotId); } }
public void Handle(BotMessage message) { var msg = message.Message as GetPeerListReplyMessage; foreach (var peer in msg.Peers) { if (_peerList.TryRegister(new PeerInfo(peer.BotId, peer.EndPoint))) { var hello = new HelloSynMessage(); _messageManager.Send(hello, peer.BotId); } } }
public void Bootstrap(List <PeerInfo> peers = null) { _peerList.Load(); if (peers != null) { foreach (var peer in peers) { _peerList.TryRegister(peer); } } Logger.Info("Bootstrapping init. {0} found endpoints", _peerList.GetPeersEndPoint().Count); foreach (var peer in _peerList) { var hello = new HelloSynMessage(); _messagesManager.Send(hello, peer.BotId); } }
public override int Invoke(IEnumerable <string> args) { try { var extra = Options.Parse(args); if (ShowHelp) { Options.WriteOptionDescriptions(CommandSet.Out); return(0); } if (extra.Count == 0) { Console.WriteLine("commands: Missing required argument `endpoint`."); Console.WriteLine("commands: Use `help add-node` for details."); return(1); } foreach (var endpoint in extra) { var endpointParts = endpoint.Split(new[] { ':' }); var ip = endpointParts[0]; var port = int.Parse(endpointParts[1]); var ipendpoint = new IPEndPoint(IPAddress.Parse(ip), port); var peer = new PeerInfo(BotIdentifier.Unknown, ipendpoint); if (_agent.PeerList.TryRegister(peer)) { var hello = new HelloSynMessage(); _agent.MessagesManager.Send(hello, peer.BotId); } } return(0); } catch (Exception e) { // _repl.Console.WriteLine("commands: {0}", CommandDemo.Verbosity >= 1 ? e.ToString() : e.Message); return(1); } }