精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

利用WCF的Duplex服務向Winform程序推送消息

開發 開發工具
最近因工作需要,想利用WCF的Duplex服務向Winform程序推送消息,寫了個示例,主要參考了artech的相關文章和其他一些利用WCF向SilverLight客戶端推送消息的文章。

先看運行效果:在網頁中發送消息【如圖】,利用WCF的Duplex服務向Winform程序推送消息,Winform端接收到消息,

Winform端接收到消息

在網頁中發送消息

先建立兩個項目,一個WebForm 項目和一個WinForm項目,并在項目下建立好各自需要的文件

WCF的Duplex服務

SendMessage.aspx 是發送消息的Web頁面

ISendMessageService.cs 和 SendMessageService.svc用來實現WCF的Duplex服務

GetMessageForm.cs 是接收消息的Winform窗口

當然,還需要建立一個消息實體文件:MessageEntity.cs,為簡單起見,只給他定義一個屬性。

  1. [DataContract]  
  2.     public class MessageEntity  
  3.     {  
  4.         [DataMember]  
  5.         public string Content { get; set; }  
  6.     } 

基本原理是消息發送的頁面將要發送的消息列表保存在全局緩存中,在WCF的Duplex服務中取得要發送的消息推送到Winform端,SendMessage.aspx的代碼如下:

  1.  protected void btnSend_Click(object sender, EventArgs e)  
  2.         {  
  3.             MessageEntity message = new MessageEntity();  
  4.             message.Content = txtMessageContent.Text;  
  5.  
  6.             List<MessageEntity> messageList = HttpRuntime.Cache["MessageEntityList"] as List<MessageEntity>;  
  7.             if (messageList == null)  
  8.             {  
  9.                 messageList = new List<MessageEntity>();  
  10.                 messageList.Add(message);  
  11.                 HttpRuntime.Cache.Add("MessageEntityList", messageList, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, null);  
  12.             }  
  13.             else 
  14.             {  
  15.                 messageList.Add(message);  
  16.                 HttpRuntime.Cache["MessageEntityList"] = messageList;  
  17.             }  
  18.  
  19.             lbCacheCount.Text = messageList.Count.ToString();  
  20.         }  
  21. ISendMessageService.cs 用來定義消息接收接口和回調接口  
  22.  
  23.    
  24.  
  25. Code  
  26. [ServiceContract(CallbackContract = typeof(ISendMessageServiceCallBack))]  
  27.     public interface ISendMessageService  
  28.     {  
  29.         [OperationContract(IsOneWay = true)]  
  30.         void GetMessage();  
  31.     }  
  32.  
  33.     public interface ISendMessageServiceCallBack  
  34.     {  
  35.         [OperationContract(IsOneWay = true)]  
  36.         void ReceiveMessage(MessageEntity messageEntity);  
  37.     }  
  38. SendMessageService.svc.cs 用來實現將緩存中的消息列表一個一個的推送出去,采用Timer類每2-5秒鐘推送一次:  
  39.  
  40.    
  41.  
  42. Code  
  43.  [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]  
  44.     public class SendMessageService : ISendMessageService  
  45.     {  
  46.         ISendMessageServiceCallBack callback;  
  47.         Timer heartTimer;  
  48.         Random random = new Random();  
  49.  
  50.         #region ISendMessageService 成員  
  51.  
  52.         public void GetMessage()  
  53.         {  
  54.             callback = OperationContext.Current.GetCallbackChannel<ISendMessageServiceCallBack>();  
  55.             heartTimer = new Timer(new TimerCallback(heartTimer_Elapsed), null3000, Timeout.Infinite);  
  56.         }  
  57.  
  58.         #endregion  
  59.  
  60.         private void heartTimer_Elapsed(object data)  
  61.         {  
  62.             List<MessageEntity> messageList = HttpRuntime.Cache["MessageEntityList"] as List<MessageEntity>;  
  63.             if (messageList != null && messageList.Count > 0)  
  64.             {  
  65.                 MessageEntity message = messageList[0];  
  66.                 messageList.Remove(message);  
  67.                 HttpRuntime.Cache["MessageEntityList"] = messageList;  
  68.                 callback.ReceiveMessage(message);  
  69.             }  
  70.             int interval = random.Next(20005000);  
  71.             heartTimer.Change(interval, Timeout.Infinite);  
  72.         }  
  73.     } 

記得修改Web.Config中EndPoint Binding 為wsDualHttpBinding ,這樣才支持WCF的Duplex服務

  1. <service behaviorConfiguration="WebApp.SendMessageServiceBehavior" name="WebApp.SendMessageService"> 
  2.                 <endpoint address="" binding="wsDualHttpBinding" contract="WebApp.ISendMessageService"> 
  3.                     <identity> 
  4.                         <dns value="localhost"/> 
  5.                     </identity> 
  6.                 </endpoint> 
  7.                 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
  8.             </service> 

WebApp項目的工作已經完成,若沒有錯誤可在瀏覽器中看到該WCF的Duplex服務已創建,拷貝該服務的地址,例如在我本機上是:http://localhost:1407/SendMessageService.svc,并在WinApp項目中增加該服務的引用
GetMessageForm.cs 實現如下:

  1. public partial class GetMessageForm : Form,ISendMessageServiceCallback  
  2.     {  
  3.         SendMessageServiceClient client;  
  4.  
  5.         public GetMessageForm()  
  6.         {  
  7.             InitializeComponent();  
  8.             client = new SendMessageServiceClient(new System.ServiceModel.InstanceContext(this));  
  9.         }  
  10.  
  11.         private void btnStartGet_Click(object sender, EventArgs e)  
  12.         {  
  13.             client.GetMessage();  
  14.         }  
  15.  
  16.         private delegate void UpdateListBoxDelegate(string Message);  
  17.         private void UpdateListBox(string message)  
  18.         {  
  19.             this.listbMessage.Items.Add(message);  
  20.             listbMessage.SelectedIndex = listbMessage.Items.Count - 1;  
  21.         }  
  22.         #region ISendMessageServiceCallback 成員  
  23.  
  24.         public void ReceiveMessage(MessageEntity messageEntity)  
  25.         {  
  26.             if (true == listbMessage.InvokeRequired)  
  27.             {  
  28.                 listbMessage.Invoke(new UpdateListBoxDelegate(UpdateListBox), messageEntity.Content);  
  29.             }  
  30.             else 
  31.             {  
  32.                 UpdateListBox(messageEntity.Content);  
  33.             }  
  34.         }  
  35.  
  36.         #endregion  
  37.  
  38.     } 

【編輯推薦】

  1. 使用ASP.NET AJAX調用WCF服務項模板
  2. 詳解自定義托管宿主WCF解決方案開發配置過程
  3. 詳解WCF可擴展框架中的行為擴展
  4. WCF中通過Dispose有效實現重用
  5. WCF開發基礎
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-11-02 12:46:15

Winform

2010-03-02 09:32:54

WCF服務消息

2017-09-05 15:30:00

JavascriptSocket.ioNode.js

2023-12-06 19:04:31

多平臺消息推送

2009-11-06 12:49:11

WCF面向服務

2009-12-21 13:37:43

WCF消息交換

2009-07-27 17:46:42

WCF服務ASP.NET應用程序

2009-11-09 11:15:06

WCF消息隊列

2009-12-07 09:23:05

2010-02-22 10:01:11

WCF消息處理

2010-02-22 17:21:02

WCF消息交換

2009-11-09 14:02:31

WCF傳輸數據

2009-12-08 16:09:02

WCF消息

2010-02-24 09:18:49

WCF Adapter

2009-12-08 16:15:13

WCF服務

2010-11-25 10:05:22

Visual StudSilverlightWCF

2024-04-07 09:41:18

SignalR實時通信開發

2010-02-26 08:59:10

WCF服務宿主程序

2009-12-04 17:47:04

WCF 服務

2022-12-25 10:47:52

點贊
收藏

51CTO技術棧公眾號

日韩精品成人在线观看| 超碰人人草人人| 国产免费黄色大片| 极品av少妇一区二区| 日韩电影中文字幕| 污视频网址在线观看| 成年人国产在线观看| 久久老女人爱爱| 91中文字幕一区| 天堂а√在线中文在线新版| 国产精品99一区二区三| 亚洲国产精品人人爽夜夜爽| 国产小视频精品| 国产极品人妖在线观看| 日本一区二区不卡视频| 国产精品一区二区欧美| 亚洲中文字幕在线一区| 野花国产精品入口| 久久亚洲成人精品| 国产7777777| 卡一精品卡二卡三网站乱码| 7777精品伊人久久久大香线蕉最新版| 日韩av一二三四区| 黄色免费在线观看网站| 2019国产精品| 国产精品三区在线| 国产美女www爽爽爽视频| 免费久久99精品国产自在现线| 欧美成在线视频| 日韩高清专区| 亚洲精品一区二区三区新线路| 日本成人超碰在线观看| 国产91对白在线播放| 久操免费在线视频| 999国产精品视频| 在线观看免费高清视频97| yy6080午夜| 97色成人综合网站| 日韩欧美国产综合在线一区二区三区| 九色porny自拍| 色婷婷综合久久久中字幕精品久久| 亚洲午夜电影在线观看| 老司机激情视频| 国产1区2区3区4区| 波多野结衣一区二区| 91午夜在线观看| 四季av综合网站| 国产精品视频一区二区三区综合| 91豆麻精品91久久久久久| av免费观看网| 超碰在线cao| 亚洲丶国产丶欧美一区二区三区| 337p亚洲精品色噜噜狠狠p| 麻豆影院在线| 亚洲三级电影网站| 中文字幕超清在线免费观看| 精品国产丝袜高跟鞋| 国产精品色噜噜| 亚洲成人自拍| 男人资源在线播放| 中文字幕一区二区三区不卡| 中文字幕欧美人与畜| 日本不卡不卡| 亚洲精品老司机| 成人在线免费高清视频| 黄色的视频在线观看| 亚洲国产精品人人做人人爽| 国产婷婷一区二区三区| 性欧美xxx69hd高清| 色综合久久久久综合99| 国产一区二区在线免费播放| 亚洲视频资源| 日韩视频免费观看高清在线视频| 亚洲成人激情小说| 欧美激情极品| 国产香蕉一区二区三区在线视频| 免费看一级黄色| 欧美在线不卡| 欧美丰满少妇xxxbbb| 黄色aaaaaa| jizz性欧美2| 精品夜色国产国偷在线| 九九九视频在线观看| 婷婷综合五月| 午夜精品免费视频| 国产熟妇一区二区三区四区| 久久99久久99小草精品免视看| 亚洲一区二区三区视频播放| 手机av在线免费观看| 国产亚洲精久久久久久| 一区二区不卡在线视频 午夜欧美不卡在| 成人中文字幕在线观看| 天天干,天天操,天天射| 国产精品九色蝌蚪自拍| 欧美这里只有精品| 韩国三级一区| 欧美videossexotv100| 男女黄床上色视频| 无需播放器亚洲| 2019中文在线观看| 国产日本精品视频| 久久久蜜臀国产一区二区| 正在播放一区二区三区| 九色porny丨首页入口在线| 欧美日韩一本到| 国产成人无码一区二区在线观看| 欧美国产小视频| 国产91成人在在线播放| 99久久精品无免国产免费| 91一区二区在线| 日本aa在线观看| 国产亚洲欧美日韩精品一区二区三区 | 国产精品自在线| 五月天福利视频| 《视频一区视频二区| 日日橹狠狠爱欧美超碰| 99综合99| 中文字幕不卡av| 国产精品久久久免费视频| 精品午夜久久福利影院| 欧洲精品久久| 91桃色在线| 7777精品久久久大香线蕉| japanese中文字幕| 亚洲福利专区| av成人免费观看| 精品美女在线观看视频在线观看 | 精品国自产在线观看| 国产拍揄自揄精品视频麻豆| 国产av麻豆mag剧集| 日韩最新av| www.欧美精品| av首页在线观看| 91免费视频观看| 欧美一区二区视频在线观看| 4444亚洲人成无码网在线观看| 久久精品黄色| 在线播放亚洲激情| 国产精品自拍第一页| 久久久久久久久久电影| 欧美黄色免费影院| 日韩母乳在线| 91a在线视频| 亚洲人成色777777精品音频| 精品久久久久久亚洲国产300| 国产伦理在线观看| 欧美日本久久| www.成人av.com| 18av在线视频| 日韩精品一区二区三区蜜臀| 欧美日韩在线观看免费| 国产精品99久| 国产精品一色哟哟| 色88888久久久久久影院| 久久免费视频网站| 午夜一区在线观看| 日韩欧中文字幕| jizz18女人高潮| 最新国产露脸在线观看| 91麻豆文化传媒在线观看| 欧美精品自拍视频| 丝袜久久网站| 国产成人黄色av| 99视频在线观看地址| 欧美日韩激情在线| 成人在线观看小视频| 国产高清精品网站| 轻点好疼好大好爽视频| 欧美大片网址| 国产精品免费在线免费 | 国产欧美精品一区二区三区四区| 香蕉视频网站入口| 亚欧美无遮挡hd高清在线视频| 95av在线视频| 白浆在线视频| 在线观看91久久久久久| 国产aⅴ一区二区三区| 婷婷六月综合亚洲| 欧美人与禽zoz0善交| 国产乱色国产精品免费视频| 97干在线视频| 成人a'v在线播放| 亚洲一区二区三区xxx视频| 咪咪网在线视频| 日韩精品91亚洲二区在线观看| 欧美精品videos另类日本| 五月激情六月婷婷| 欧美性一二三区| 99精品久久久久| 91日韩一区二区三区| 午夜视频在线网站| 亚洲免费成人| 亚洲乱码国产乱码精品天美传媒| 亚洲成人影音| 国产精品99一区| 欧美黑人xx片| 激情成人中文字幕| 韩国三级hd中文字幕| 国产精品91xxx| www黄色av| 中国成人一区| 日韩精品久久久| 狠狠久久伊人| 成人黄色网免费| 玛雅亚洲电影| 精品自拍视频在线观看| 91在线高清| 亚洲精品久久在线| 国产女人高潮毛片| 在线精品视频一区二区| 久久婷婷综合国产| 亚洲欧洲另类国产综合| 公侵犯人妻一区二区三区| 国产不卡在线播放| 天天视频天天爽| 久久精品道一区二区三区| 国产玉足脚交久久欧美| 偷偷www综合久久久久久久| 欧美日韩系列| 图片婷婷一区| 国产免费一区| 77成人影视| 91久久在线观看| 成人亚洲综合| 国产成人精品日本亚洲| 欧美裸体视频| 国模私拍一区二区三区| av网站免费在线观看| 日韩中文字幕免费视频| 国产黄在线看| 亚洲色图国产精品| 视频福利在线| 日韩精品在线一区| 国产成人免费看一级大黄| 欧美精品精品一区| 糖心vlog精品一区二区| 日韩欧美在线视频观看| 精品国产免费观看| 狠狠色狠狠色综合系列| 久久久在线免费观看| 欧美香蕉爽爽人人爽| 亚洲国产成人精品女人久久久| 精品人妻伦一二三区久久 | 久久超碰99| 久久精品国产精品国产精品污| 国产欧美三级电影| 国产女人水真多18毛片18精品| 超碰地址久久| 国产区一区二区| 牛牛精品成人免费视频| 精品无码久久久久国产| 尤物tv在线精品| 日本电影一区二区三区| 成人羞羞视频播放网站| 亚洲国产欧美日韩| 91精品在线观看国产| 欧美xxxx吸乳| 激情成人综合| 妞干网在线视频观看| 中文亚洲字幕| 日韩免费中文专区| 日韩大片在线| 国产三级中文字幕| 国产一区二区三区四区老人| 大西瓜av在线| 久久精品日产第一区二区| 国产xxxxx视频| 麻豆91精品91久久久的内涵| 亚洲天堂国产视频| 国产v日产∨综合v精品视频| 黄色激情在线观看| 久久综合九色欧美综合狠狠| 中文字幕网站在线观看| 国产精品国产a| 黄色一级视频在线观看| 婷婷综合另类小说色区| 中文字幕久久熟女蜜桃| 日韩亚洲欧美中文三级| 少妇人妻精品一区二区三区| 亚洲网址你懂得| 成人日日夜夜| 91精品国产色综合| www.26天天久久天堂| 147欧美人体大胆444| 欧美激情极品| 在线播放豆国产99亚洲| 亚洲视频免费| 不卡av免费在线| 国产成人精品一区二| 欧美特黄一区二区三区| 亚洲日本一区二区| 久久精品国产成人av| 欧美日韩国产a| 人妻少妇精品无码专区| 色吧影院999| 久久影院午夜精品| 成人黄色免费片| 日本精品影院| 色综合一个色综合| 亚洲天堂视频网站| 7777精品伊人久久久大香线蕉经典版下载| 欧性猛交ⅹxxx乱大交| 在线视频免费一区二区| 国产va在线视频| 成人免费在线网址| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲激情图片| 亚洲在线电影| 一区二区三区人妻| 国产精品视频在线看| 精品成人免费视频| 欧美一二三区在线观看| 成人精品一区二区| 97免费中文视频在线观看| 成人激情久久| 亚洲精品国产精品国自产观看| 在线成人av| 九色91porny| 国产欧美日韩不卡| 二区视频在线观看| 精品国产百合女同互慰| 免费a级毛片在线播放| 国产成人激情视频| 爽爽窝窝午夜精品一区二区| 丰满少妇大力进入| 国产乱妇无码大片在线观看| 美女av免费看| 色综合久久综合网| 午夜视频www| 97久久精品在线| 在线精品国产亚洲| 欧美大片免费播放| 韩国女主播成人在线| 国产精品18在线| 欧美在线观看视频一区二区| 久久99久久| 国产成人涩涩涩视频在线观看 | 九九视频免费观看| 欧美男女性生活在线直播观看 | 久久久久久久久亚洲| 精品久久免费| 波多野结衣一区二区三区在线观看| 久久国产精品亚洲人一区二区三区 | 成人免费看片网站| 欧美精品综合| 成人免费播放视频| 亚洲一二三专区| 免费看黄网站在线观看| 国产综合在线视频| 欧美日韩另类图片| 亚洲精品无码久久久久久| 久久亚洲精华国产精华液| 日本免费在线观看视频| 亚洲欧美一区二区三区四区 | 国产在线精品自拍| 日韩欧美高清| 亚洲av无日韩毛片久久| 亚洲视频在线观看三级| 国产v在线观看| 国内揄拍国内精品| 色天下一区二区三区| 草草草在线视频| 国产精品伦理一区二区| 国产毛片毛片毛片毛片毛片| 久久久久久久久久久久av| 少妇一区二区三区| jizz大全欧美jizzcom| 亚洲视频在线一区二区| 刘亦菲久久免费一区二区| 欧美在线不卡区| 日本欧美肥老太交大片| 欧美一级免费在线| 亚洲大型综合色站| 日本在线视频1区| 国产精品视频一区国模私拍| 在线精品国产| 亚洲综合自拍网| 欧美日韩一卡二卡| 直接在线观看的三级网址| 狠狠干一区二区| 日韩1区2区3区| 免费一级全黄少妇性色生活片| 国产视频精品va久久久久久| 黄页免费欧美| 我的公把我弄高潮了视频| 国产色一区二区| 亚洲av无码乱码在线观看性色| 26uuu另类亚洲欧美日本老年| 日本午夜一区| 一区二区免费在线观看视频| 欧美日韩视频在线第一区| 久久五月精品中文字幕| 欧美一级二级三级| 国产东北露脸精品视频| 精品国产一区二区三区四| 久久亚洲精品成人| 猛男gaygay欧美视频| 色婷婷综合在线观看| 色综合色狠狠综合色| 欧美hdxxxxx|