public static TransportBase CreateTransport(string host, int port, string sslHost, bool doSslUpgrade, SaslHandler saslHandler)
{
AmqpSettings settings = GetAmqpSettings(true, sslHost, doSslUpgrade, saslHandler);
TransportSettings transportSettings = GetTcpSettings(host, port, false);
if (!doSslUpgrade && sslHost != null)
{
TlsTransportSettings tlsSettings = new TlsTransportSettings(transportSettings);
tlsSettings.TargetHost = sslHost;
tlsSettings.CertificateValidationCallback = (s, c, h, e) => { return true; };
transportSettings = tlsSettings;
}
ManualResetEvent complete = new ManualResetEvent(false);
AmqpTransportInitiator initiator = new AmqpTransportInitiator(settings, transportSettings);
TransportAsyncCallbackArgs args = new TransportAsyncCallbackArgs();
args.CompletedCallback = (a) => { complete.Set(); };
initiator.ConnectAsync(TimeSpan.FromSeconds(120), args);
complete.WaitOne();
complete.Dispose();
if (args.Exception != null)
{
throw args.Exception;
}
return args.Transport;
}