public static void Snippet22() { BasicHttpBinding binding = new BasicHttpBinding(); //CustomBinding binding = new CustomBinding(); //binding.Elements.Add(new HttpTransportBindingElement()); BindingParameterCollection paramCollection = new BindingParameterCollection(); IChannelListener <IReplyChannel> listener = binding.BuildChannelListener <IReplyChannel> (new Uri("http://localhost:8000/ChannelApp"), paramCollection); listener.Open(); IReplyChannel channel = listener.AcceptChannel(); Console.WriteLine("Listening for messages"); channel.Open(); RequestContext request = channel.ReceiveRequest(); Message msg = request.RequestMessage; Console.WriteLine("Message Received"); Console.WriteLine("Message Action: {0}", msg.Headers.Action); if (msg.Headers.Action == "hello") { Message reply = Message.CreateMessage(MessageVersion.Soap11, "wcf"); request.Reply(reply); } msg.Close(); channel.Close(); listener.Close(); }
static void Main(string[] args) { Uri listenUri = new Uri("http://127.0.0.1:1357/listener"); Binding binding = new BasicHttpBinding(); //创建,开启信道监听器 IChannelListener <IReplyChannel> channelListener = binding.BuildChannelListener <IReplyChannel>(listenUri); channelListener.Open(); //创建,开启回复信道 IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); //监听 while (true) { //接收请求消息 RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue); Console.WriteLine(requestContext.RequestMessage); //消息回复 requestContext.Reply(CreateReplyMessage(binding)); } }
static void Main(string[] args) { //创建监听地址和绑定 Uri listenUri = new Uri("http://localhost:9999/listener"); Binding binding = new BasicHttpBinding(); //通过监听地址创建信道监听器 IChannelListener <IReplyChannel> channelListener = binding.BuildChannelListener <IReplyChannel>(listenUri); //开启信道监听器 channelListener.Open(); //通过信道监听器对象创建回复信道对象 IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); //开启回复信道 channel.Open(); Console.WriteLine("开始监听..."); while (true) { //通过回复信道创建请求文本对象 RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue); //输出请求文本对象里存储的从请求端发送的请求信息 Console.WriteLine("接收到请求消息:\n{0}", requestContext.RequestMessage); //通过请求文本对象的Reply()方法向请求端发送回复信息 requestContext.Reply(CreateReplyMessage(binding)); } }
public void BuildChannelListenerForHttpEndpoint() { var b = new BasicHttpBinding(); b.Security.Mode = BasicHttpSecurityMode.Transport; b.BuildChannelListener <IReplyChannel> (new Uri("http://localhost:8080")); }
static void Main(string[] args) { Uri listenUri = new Uri("http://localhost:9999/listener"); Binding binding = new BasicHttpBinding(); IChannelListener <SimpleReplyChannel> channelListener = binding.BuildChannelListener <SimpleReplyChannel>(listenUri); channelListener.Open(); SimpleReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); Console.WriteLine("开始监听"); }
static void Main() { Binding binding = new BasicHttpBinding(); Uri address = new Uri("http://localhost:" + UptimeRequest.ListeningPort); DateTime started = DateTime.Now; Console.WriteLine("Opening listener at {0}.", address); Console.WriteLine("Be sure your firewall allows incoming " + "requests on this port."); var listener = binding.BuildChannelListener <IReplyChannel>(address); listener.Open(); try { var channel = listener.AcceptChannel(); channel.Open(); try { while (true) { Console.WriteLine("Waiting for uptime requests. Press Ctrl+C to stop server."); // Block until a request from the client comes in. var req = channel.ReceiveRequest(TimeSpan.MaxValue); // The request doesn't have anything interesting in // our case, so we won't bother deserializing it. // var uptimeRequest = req.RequestMessage. // GetBody<UptimeRequest>( // MessageSerializer.RequestSerializer); // Formulate our response. var uptime = new UptimeResponse() { Uptime = DateTime.Now - started }; Console.WriteLine("Uptime request received. " + "Sending {0}.", uptime.Uptime); req.Reply(Message.CreateMessage( binding.MessageVersion, "urn:UptimeResponse", uptime, MessageSerializer.ResponseSerializer )); } } finally { channel.Close(); } } finally { listener.Close(); } }
static void Main(string[] args) { Uri address = new Uri("http://127.0.0.1:9999/messagingviabinding"); BasicHttpBinding binding = new BasicHttpBinding(); IChannelListener<IReplyChannel> channelListener = binding.BuildChannelListener<IReplyChannel>(address); channelListener.Open(); IReplyChannel channel = channelListener.AcceptChannel(); channel.Open(); Console.WriteLine("Begin to listen..."); while (true) { RequestContext context = channel.ReceiveRequest(new TimeSpan(1, 0, 0)); Console.WriteLine("Receive a request message:\n{0}", context.RequestMessage); Message replyMessage = Message.CreateMessage(MessageVersion.Soap11, "http://artech.messagingviabinding", "This is a mannualy created reply message for the purpose of testing"); context.Reply(replyMessage); } }
static void Main(string[] args) { Uri listenUri = new Uri("https://127.0.0.1:3721/listener"); BasicHttpBinding binding = new BasicHttpBinding(); binding.MessageEncoding = WSMessageEncoding.Mtom; binding.ListAllBindingElements(); binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport); Console.WriteLine("Transport"); binding.MessageEncoding = WSMessageEncoding.Mtom; binding.ListAllBindingElements(); binding = new BasicHttpBinding(BasicHttpSecurityMode.Message); binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate; Console.WriteLine("Message"); binding.MessageEncoding = WSMessageEncoding.Mtom; binding.ListAllBindingElements(); binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential); Console.WriteLine("TransportWithMessageCredential"); binding.MessageEncoding = WSMessageEncoding.Mtom; binding.ListAllBindingElements(); bool flag = binding.CanBuildChannelFactory <IDuplexChannel>(listenUri); //创建,开启信道监听器 IChannelListener <IReplyChannel> channelListener = binding.BuildChannelListener <IReplyChannel>(listenUri); channelListener.Open(); //创建开启回复信道 IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); //开始监听 while (true) { //接受输出请求消息 RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue); Console.WriteLine(requestContext.RequestMessage); //消息回复 requestContext.Reply(CreateReplyMessage(binding)); } }
protected override void InitializeRuntime() { BindingParameterCollection bpc = new BindingParameterCollection(); VirtualPathExtension virtualPathExtension = this.Extensions.Find <VirtualPathExtension>(); if (virtualPathExtension != null) { bpc.Add(virtualPathExtension); } BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); IChannelListener <IReplyChannel> listener = basicHttpBinding.BuildChannelListener <IReplyChannel>(interestedUri, bpc); CustomChannelDispatcher channelDispatcher = new CustomChannelDispatcher(serviceManager, listener); this.ChannelDispatchers.Add(channelDispatcher); }
static void Main(string[] args) { // Creating the Binding BasicHttpBinding binding = new BasicHttpBinding(); BindingParameterCollection parameters = new BindingParameterCollection(); IChannelListener <IReplyChannel> listener = binding.BuildChannelListener <IReplyChannel> (new Uri("http://<<ServerAddress>>:<<PortNumber>>"), parameters); listener.Open(); XmlSerializerWrapper wrapper = new XmlSerializerWrapper(typeof(TransmittedObject)); // Opening the Channel IReplyChannel channel = listener.AcceptChannel(); channel.Open(TimeSpan.MaxValue); // Waiting for and receiving the Message RequestContext r = channel.ReceiveRequest(TimeSpan.MaxValue); TransmittedObject to = r.RequestMessage.GetBody <TransmittedObject>(wrapper); // Processing the Message to.str = to.str + " World"; to.i = to.i + 1; // Creating the return Message Message m = Message.CreateMessage (MessageVersion.Soap11, "urn:test", to, wrapper); r.Reply(m, TimeSpan.MaxValue); // Cleaning up channel.Close(); }
static void Main(string[] args) { Uri listenUri = new Uri(@"http://127.0.0.1:9999/listener"); Binding binding = new BasicHttpBinding(); IChannelListener <IReplyChannel> channelListener = binding.BuildChannelListener <IReplyChannel>(listenUri); channelListener.Open(); IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); Console.WriteLine("开始监听..."); while (true) { RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue); Console.WriteLine("接收到的请求消息: \n{0}", requestContext.RequestMessage); requestContext.Reply(CreateReplyMessage(binding)); } }