示例#1
0
        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);
        }
示例#2
0
        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);
        }