多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開源 > php教程 > WCF 之 通過綁定進(jìn)行消息通信

WCF 之 通過綁定進(jìn)行消息通信

來源:程序員人生   發(fā)布時(shí)間:2015-05-25 09:14:25 閱讀次數(shù):2630次
        WCF可以分成兩個(gè)部份:服務(wù)模型層(Service Model Layer)和信道層(Channel Layer).服務(wù)模型層建立在信道層之上,提供了1個(gè)統(tǒng)1的、可擴(kuò)大的編程模型。信道層則通過綁定創(chuàng)建的信道棧為消息通訊提供了1個(gè)傳輸、處理的通道。


綁定與信道棧(Binding and Channel Stack)

        綁定,在WCF全部結(jié)構(gòu)體系中扮演著中間人的角色。當(dāng)服務(wù)被成功寄宿時(shí),WCF通過終結(jié)點(diǎn)的綁定對(duì)象創(chuàng)建1個(gè)或多個(gè)信道監(jiān)聽器(ChannelListener),綁定到監(jiān)聽端口進(jìn)行要求的偵聽。當(dāng)要求消息抵達(dá),則利用信道監(jiān)聽器創(chuàng)建的信道棧進(jìn)行消息的接收。服務(wù)操作履行的結(jié)果終究封裝到回復(fù)消息中,通過相同的信道棧被回送。在客戶端,通過綁定創(chuàng)建信道工廠(ChannelFactory),借助信道工廠創(chuàng)建的信道棧進(jìn)行要求消息的發(fā)送與回復(fù)消息的接收。


下面我們就具體來看1個(gè)通過綁定進(jìn)行消息通訊的實(shí)例

1、創(chuàng)建全部解決方案

    MessageViaBinding.Listener:1個(gè)控制臺(tái)利用程序,摹擬消息的監(jiān)聽方。

    MessageViaBinding.Sender:1個(gè)控制臺(tái)利用程序,摹擬消息的發(fā)送方。


                                                    


2、創(chuàng)建監(jiān)聽端利用程序

using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.ServiceModel.Channels; using System.Text; using System.Runtime.Serialization; namespace MessageViaBinding.Listener { class Program { static void Main(string[] args) { Uri listenUri = new Uri("http://localhost:8008/listener"); //創(chuàng)建BasicHttpBinding對(duì)象 Binding binding = new BasicHttpBinding(); //創(chuàng)建信道監(jiān)聽器對(duì)象,listenUri為監(jiān)聽地址 IChannelListener<IReplyChannel> channelListener = binding.BuildChannelListener<IReplyChannel>(listenUri); //打開信道監(jiān)聽器對(duì)象 channelListener.Open(); //創(chuàng)建信道棧進(jìn)行要求的監(jiān)聽 IReplyChannel channel = channelListener.AcceptChannel(TimeSpan.MaxValue); channel.Open(); Console.WriteLine("開始監(jiān)聽..."); while (true) { RequestContext requestContext = channel.ReceiveRequest(TimeSpan.MaxValue); Console.WriteLine("接收到要求消息: {0}", requestContext.RequestMessage); requestContext.Reply(CreateReplyMessage(binding)); } } //創(chuàng)建回復(fù)消息 static Message CreateReplyMessage(Binding binding) { string action = "urn:artech.com/reply"; string body = "這是1個(gè)簡(jiǎn)單的回復(fù)消息!"; return Message.CreateMessage(binding.MessageVersion, action, body); } } }


3、創(chuàng)建發(fā)送端利用程序

using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.ServiceModel.Channels; using System.Text; namespace MessageViaBinding.Sender { class Program { static void Main(string[] args) { Uri listenUri = new Uri("http://localhost:8008/listener"); //創(chuàng)建BasicHttpBinding對(duì)象 Binding binding = new BasicHttpBinding(); IChannelFactory<IRequestChannel> channelFactory = binding.BuildChannelFactory<IRequestChannel>(); channelFactory.Open(); IRequestChannel channel = channelFactory.CreateChannel(new EndpointAddress(listenUri)); channel.Open(); Message replyMessage = channel.Request(CreateRequestMessage(binding)); Console.WriteLine ("接收到回復(fù)消息 {0}",replyMessage); Console.Read(); } //創(chuàng)建要求消息 static Message CreateRequestMessage(Binding binding) { string action = "urn:artech.com/request"; string body = "這是1個(gè)簡(jiǎn)單的要求消息!"; return Message.CreateMessage(binding.MessageVersion, action, body); } } }


啟動(dòng)監(jiān)聽端

                 

啟動(dòng)發(fā)送端發(fā)送要求消息,監(jiān)聽端就可以馬上監(jiān)聽到該要求消息

                  

同時(shí),監(jiān)聽端發(fā)送回復(fù)消息,發(fā)送端接收到該回復(fù)消息

                  






生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产精品一区二区三区四区 | 国产毛片久久精品 | ww在线观视频免费观看w | 午夜影院在线免费观看 | 国产亚洲欧美另类久久久 | 国产成人精品福利网站在线 | 巨大欧美黑人xxxxbbbb | free性欧美hd另类 | 波多野结衣视频免费在线观看 | 久久亚洲精品一区成人 | 久久精品伊人网 | 亚洲网视频 | 国产亚洲美女精品久久久久 | 视频在线观看高清免费 | 免费视频网站一级人爱视频 | 欧美另类视频一区二区三区 | 久久亚洲国产 | 欧美俄罗斯一级毛片激情 | 国产精品一级二级三级 | 免费h网站在线观看 | 一区二区视频在线观看免费的 | 国产成人免费片在线视频观看 | aa黄色大片 | 亚洲欧洲无码一区二区三区 | 国产成+人欧美+综合在线观看 | 在线 成人 | 91宅男 | 中文字幕在线国产 | 手机在线观看视频 | 亚洲福利一区 | 亚州精品视频 | 男女晚上日日麻批视频不挡 | 久草在线免费福利资源 | 粉嫩00福利视频在线精品 | 国产欧美久久久精品影院 | 激情爽毛片私人影院 | 亚洲丶国产丶欧美一区二区三区 | 国产精品一区伦免视频播放 | 亚洲乱码卡三乱码新区 | 欧美一级在线免费观看 | 激情春色 |