public void SendTo(NodeRaftAddress nodeAddress, eRaftSignalType signalType, IEncoder data, NodeRaftAddress senderNodeAddress, string entityName)
 {
     try
     {
         TcpPeer peer = null;
         if (Peers.TryGetValue(nodeAddress.EndPointSID, out peer))
         {
             peer.Send(RaftCommand.RaftMessage, new TcpMsgRaft()
             {
                 EntityName = entityName, RaftSignalType = signalType, Data = data.BiserEncode()
             });
         }
     }
     catch (Exception ex)
     {
     }
 }
        public void AddPeerToClusterEndPoints(TcpPeer peer, bool handshake)
        {
            _sync.EnterWriteLock();
            try
            {
                //Choosing priority connection
                if (!Peers.ContainsKey(peer.EndPointSID))
                {
                    Peers[peer.EndPointSID] = peer;
                    peer.FillNodeAddress();

                    if (handshake)
                    {
                        peer.Send(RaftCommand.HandshakeACK, new TcpMsgHandshake()
                        {
                            NodeListeningPort = trn.port,
                            NodeUID           = trn.GetNode().NodeAddress.NodeUId,
                        });
                    }
                }
                else
                {
                    //Peers[peer.EndPointSID].Send(RaftCommand.Ping,"ping"); //ping
                    //removing incoming connection
                    peer.Dispose(true);
                    return;
                }
            }
            catch (Exception ex)
            {
                //throw;
            }
            finally
            {
                _sync.ExitWriteLock();
            }
        }