private ZmqOutboundSocket GetConnectedOutboundSocket(Peer peer, TransportMessage transportMessage) { if (!_outboundSockets.TryGetValue(peer.Id, out var outboundSocket)) { outboundSocket = new ZmqOutboundSocket(_context, peer.Id, peer.EndPoint, SocketOptions, _errorHandler); outboundSocket.ConnectFor(transportMessage); _outboundSockets.TryAdd(peer.Id, outboundSocket); } else if (outboundSocket.EndPoint != peer.EndPoint) { outboundSocket.ReconnectFor(peer.EndPoint, transportMessage); } return(outboundSocket); }
private ZmqOutboundSocket GetConnectedOutboundSocket(Peer peer) { var outboundSocket = _outboundSockets.GetValueOrDefault(peer.Id); if (outboundSocket == null) { outboundSocket = new ZmqOutboundSocket(_context, peer.Id, peer.EndPoint, SocketOptions); outboundSocket.Connect(); _outboundSockets.TryAdd(peer.Id, outboundSocket); } else if (outboundSocket.EndPoint != peer.EndPoint) { outboundSocket.Reconnect(peer.EndPoint); } return(outboundSocket); }