protected ConnectionListener( Uri addressUri, AmqpSettings amqpSettings, AmqpConnectionSettings connectionSettings) { amqpSettings.ValidateListenerSettings(); this.listenAddress = addressUri; this.amqpSettings = amqpSettings; this.connectionSettings = connectionSettings; this.onAcceptTransport = this.OnAcceptTransport; TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.SetEndPoint(addressUri.Host, addressUri.Port, true); TransportListener tpListener = null; if (addressUri.Scheme.Equals(AmqpConstants.SchemeAmqps, StringComparison.OrdinalIgnoreCase)) { TlsTransportProvider tlsProvider = this.amqpSettings.GetTransportProvider<TlsTransportProvider>(); if (tlsProvider == null) { throw Fx.Exception.ArgumentNull("TlsSecurityProvider"); } Fx.Assert(tlsProvider.Settings.Certificate != null, "Must have a valid certificate."); TlsTransportSettings tlsSettings = new TlsTransportSettings(tcpSettings, false); tlsSettings.Certificate = tlsProvider.Settings.Certificate; tpListener = tlsSettings.CreateListener(); } else { tpListener = tcpSettings.CreateListener(); } this.transportListener = new AmqpTransportListener(new TransportListener[] { tpListener }, this.amqpSettings); this.onConnectionOpenComplete = new AsyncCallback(this.OnConnectionOpenComplete); }
protected OpenAsyncResult(AmqpStream parent, string address, bool listen, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state) { this.parent = parent; this.parent.isReceiver = listen; this.timeoutHelper = new TimeoutHelper(timeout); Uri addressUri = new Uri(address); this.parent.node = addressUri.PathAndQuery; int port = addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(addressUri.Host, port, listen); TransportSettings transportSettings = tcpSettings; this.Start(transportSettings); }
public void Open() { int port = this.container.addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(this.container.addressUri.Host, port, true); TransportSettings transportSettings = tcpSettings; this.listener = transportSettings.CreateListener(); this.listener.Listen(this.OnAcceptTransport); }
public OpenContainerAsyncResult(Container parent, AsyncCallback callback, object state) : base(callback, state) { this.parent = parent; int port = this.parent.addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(this.parent.addressUri.Host, port, false); TransportSettings transportSettings = tcpSettings; TransportInitiator initiator = transportSettings.CreateInitiator(); TransportAsyncCallbackArgs args = new TransportAsyncCallbackArgs(); args.CompletedCallback = onTransport; args.UserToken = this; if (!initiator.ConnectAsync(TimeSpan.MaxValue, args)) { OnTransport(args); } }