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(); } }