static void Main(string[] args) { String broker = "localhost"; int port = 5672; String target = "amq.topic"; String source = "my_topic_node"; if (args.Length > 0) { broker = args[0]; } if (args.Length > 1) { port = int.Parse(args[1]); } if (args.Length > 2) { target = args[2]; } if (args.Length > 3) { source = args[3]; } AmqpBinaryBinding binding = new AmqpBinaryBinding(); binding.BrokerHost = broker; binding.BrokerPort = port; IChannelFactory<IInputChannel> receiverFactory = binding.BuildChannelFactory<IInputChannel>(); receiverFactory.Open(); IInputChannel receiver = receiverFactory.CreateChannel(new EndpointAddress("amqp:" + source)); receiver.Open(); IChannelFactory<IOutputChannel> senderFactory = binding.BuildChannelFactory<IOutputChannel>(); senderFactory.Open(); IOutputChannel sender = senderFactory.CreateChannel(new EndpointAddress("amqp:" + target)); sender.Open(); sender.Send(Message.CreateMessage(MessageVersion.None, "", new HelloWorldBinaryBodyWriter())); Message message = receiver.Receive(); XmlDictionaryReader reader = message.GetReaderAtBodyContents(); while (!reader.HasValue) { reader.Read(); } byte[] binaryContent = reader.ReadContentAsBase64(); string text = Encoding.UTF8.GetString(binaryContent); Console.WriteLine(text); senderFactory.Close(); receiverFactory.Close(); }
static void Main(string[] args) { try { Options options = new Options(args); AmqpBinaryBinding binding = new AmqpBinaryBinding(); binding.BrokerHost = options.Broker; binding.BrokerPort = options.Port; binding.TransferMode = TransferMode.Streamed; IChannelFactory<IOutputChannel> factory = binding.BuildChannelFactory<IOutputChannel>(); factory.Open(); try { System.ServiceModel.EndpointAddress addr = options.Address; IOutputChannel sender = factory.CreateChannel(addr); sender.Open(); MyRawBodyWriter.Initialize(options.Content); DateTime end = DateTime.Now.Add(options.Timeout); System.ServiceModel.Channels.Message message; for (int count = 0; ((count < options.Count) || (options.Count == 0)) && ((options.Timeout == TimeSpan.Zero) || (end.CompareTo(DateTime.Now) > 0)); count++) { message = Message.CreateMessage(MessageVersion.None, "", new MyRawBodyWriter()); AmqpProperties props = new AmqpProperties(); props.ContentType = "text/plain"; string id = Guid.NewGuid().ToString() + ":" + count; props.PropertyMap.Add("spout-id", new AmqpString(id)); message.Properties["AmqpProperties"] = props; sender.Send(message); } } finally { factory.Close(); } } catch (Exception e) { Console.WriteLine("Spout: " + e); } }
static void Main(string[] args) { try { Options options = new Options(args); AmqpBinaryBinding binding = new AmqpBinaryBinding(); binding.BrokerHost = options.Broker; binding.BrokerPort = options.Port; binding.TransferMode = TransferMode.Streamed; IChannelFactory<IInputChannel> factory = binding.BuildChannelFactory<IInputChannel>(); factory.Open(); try { System.ServiceModel.EndpointAddress addr = options.Address; IInputChannel receiver = factory.CreateChannel(addr); receiver.Open(); TimeSpan timeout = options.Timeout; System.ServiceModel.Channels.Message message; while (receiver.TryReceive(timeout, out message)) { AmqpProperties props = (AmqpProperties)message.Properties["AmqpProperties"]; Console.WriteLine("Message(properties=" + MessagePropertiesAsString(props) + ", content='" + MessageContentAsString(message, props) + "')"); } } finally { factory.Close(); } } catch (Exception e) { Console.WriteLine("Drain: " + e); } }
protected override void InitializeFrom(Binding binding) { base.InitializeFrom(binding); AmqpBinaryBinding amqpBinding = (AmqpBinaryBinding)binding; }
private static void InitializeBinding() { AmqpBinaryBinding binding = new AmqpBinaryBinding(); bindingParameters = new BindingParameterCollection(); binding.BrokerHost = brokerAddr; binding.BrokerPort = brokerPort; binding.TransferMode = TransferMode.Streamed; binding.PrefetchLimit = 5000; binding.Shared = true; if (ssl || (userName != null)) { binding.Security.Mode = AmqpSecurityMode.Transport; binding.Security.Transport.UseSSL = ssl; if (userName != null) { binding.Security.Transport.CredentialType = AmqpCredentialType.Plain; ClientCredentials credentials = new ClientCredentials(); credentials.UserName.UserName = userName; credentials.UserName.Password = password; bindingParameters.Add(credentials); } } brokerBinding = binding; }