精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产日韩欧美91| 中日韩美女免费视频网址在线观看 | 日本va欧美va瓶| 最新的欧美黄色| 91视频免费入口| 日本乱码一区二区三区不卡| 久久久国产午夜精品| 成人免费网站在线看| 日韩免费av片| 色97色成人| 精品播放一区二区| 欧美美女一级片| 神马久久午夜| 自拍视频在线观看一区二区| 精品在线视频一区二区三区| 91激情在线观看| 亚洲福利一区| 久久精品99无色码中文字幕| 第四色在线视频| 亚洲青青一区| 色综合中文综合网| 青青草视频在线视频| www.亚洲资源| 成人午夜电影久久影院| 国产精品久久久久久亚洲调教| 久久中文字幕无码| 99精品视频在线| 亚洲精品视频在线观看视频| 中文字幕第10页| 国产极品一区| 色先锋aa成人| 精品久久一二三| 在线heyzo| 国产精品萝li| 欧美亚洲另类久久综合| 午夜精品在线播放| 国产在线一区观看| 国产一区二区色| 成人h动漫精品一区二区下载 | 国产精品自拍片| www视频在线免费观看| 欧美高清在线视频| 日本一区二区三不卡| 四虎在线免费观看| 95精品视频在线| 国产精品嫩草在线观看| 精品区在线观看| 国产一区二区三区免费看| 国产精品永久免费在线| 奴色虐av一区二区三区| 久久九九电影| 国产成人在线一区二区| 日本中文字幕久久| 久久中文欧美| 国产精品国模在线| 久久久久久久久久一级| 日韩精品一卡二卡三卡四卡无卡 | 成人一区视频| 欧美亚洲动漫制服丝袜| 波多结衣在线观看| 国产福利一区二区三区在线播放| 欧美在线免费播放| 中文字幕有码av| 久久久免费人体| 欧美精品色一区二区三区| 欧美成人乱码一二三四区免费| jvid一区二区三区| 欧美日韩一区久久| 8x8x成人免费视频| 亚洲国产中文在线| 亚洲国产精彩中文乱码av在线播放| 年下总裁被打光屁股sp| 久久久91麻豆精品国产一区| 日韩欧美www| 成人在线视频免费播放| 午夜精品福利影院| 国产一区二区三区在线免费观看| 精品熟妇无码av免费久久| 成人高清电影网站| 久久亚洲精品网站| 男人天堂中文字幕| 久久午夜精品| 91精品久久久久久久久中文字幕 | 伊人久久综合一区二区| 色欧美88888久久久久久影院| 成年人小视频网站| 二区三区精品| 亚洲电影免费观看高清完整版在线观看 | 麻豆一区二区99久久久久| 91精品国产综合久久香蕉最新版 | free欧美| 欧美日韩高清不卡| 折磨小男生性器羞耻的故事| 亚洲日产av中文字幕| 少妇高潮久久77777| 清纯粉嫩极品夜夜嗨av| 亚洲专区免费| 成人性生交大片免费看小说 | 九九热精品在线观看| 亚洲高清久久| 国产精品美女网站| 高清毛片aaaaaaaaa片| 久久久久久久久久久久久久久99| 亚洲一区二区在线观| av电影免费在线看| 欧美日韩亚洲综合一区 | 日韩一区免费| 亚洲一区二区精品| 中文字幕一区二区三区手机版 | 亚洲制服中文字幕| 亚洲精品中文字幕99999| 色偷偷亚洲男人天堂| 日韩激情在线播放| 国产精品正在播放| 亚洲国产欧美不卡在线观看 | 欧美国产日韩另类| 国产精品亚洲人成在99www| 精品中文字幕乱| 啪啪小视频网站| 9i在线看片成人免费| 中文字幕av日韩精品| 欧美日韩大片| 亚洲国产成人精品久久| 搜索黄色一级片| 日韩精品亚洲一区| 好看的日韩精品视频在线| 国产最新在线| 欧美怡红院视频| 中文字幕在线免费看线人| 欧美69视频| 成人免费网视频| 丝袜美腿美女被狂躁在线观看| 亚洲风情在线资源站| 成人在线短视频| 97视频精品| 国产精品美乳一区二区免费| 免费成人av电影| 欧美日韩精品在线| 国产精品扒开腿做爽爽爽a片唱戏| 国产精品成人a在线观看| 国产精品久久电影观看| 免费观看成年在线视频网站| 欧美日韩国产中字| 国产 中文 字幕 日韩 在线| 韩日欧美一区| 国产精品果冻传媒潘| 色呦呦在线看| 精品国免费一区二区三区| 麻豆成人在线视频| 豆国产96在线|亚洲| 国产 国语对白 露脸| 伦一区二区三区中文字幕v亚洲| 亚洲欧洲日本专区| 无码人妻一区二区三区线| 久久嫩草精品久久久精品| 国产第一页视频| 亚洲都市激情| 国产成人av在线| 国产在线高清| 欧美日韩综合在线| 91视频青青草| 国产精品18久久久久久久久| 日韩国产小视频| eeuss鲁片一区二区三区| 欧美精品第一页在线播放| 六月婷婷综合网| 亚洲国产欧美日韩另类综合| 捆绑裸体绳奴bdsm亚洲| 亚洲影院在线| 视频一区视频二区视频三区高| 日本韩国欧美| 最近2019中文免费高清视频观看www99 | 91精品蜜臀一区二区三区在线| 成人久久18免费网站图片| 99热国产在线中文| 日韩av一区二区在线观看| 黄色片视频免费| 国产精品久久久一区麻豆最新章节| 天天综合天天添夜夜添狠狠添| 女同性一区二区三区人了人一| 国产一区二区三区高清| 日韩精品三区| 久久伊人精品一区二区三区| 隣の若妻さん波多野结衣| 一本色道久久综合亚洲精品按摩| 欧美性受xxxx黑人| 国产成人亚洲综合色影视| 日韩欧美一区三区| 999精品一区| 国产午夜精品一区| 国产精品第一| 久久久久中文字幕| av在线收看| 欧美精品一区二区三区在线| 黄色av一区二区| 亚洲一区二三区| 一级片手机在线观看| 国产一区视频导航| 黄色片视频在线免费观看| 久久精品国产www456c0m| 国产精品久久精品视| 成人高清一区| 91精品成人久久| 精品国产丝袜高跟鞋| 亚洲二区在线播放视频| 中文字幕码精品视频网站| 亚洲一二三级电影| 激情五月深爱五月| 99久久精品免费看| 色婷婷综合在线观看| 久久精品三级| 日韩伦理在线免费观看| 97精品97| 欧美在线一二三区| 林ゆな中文字幕一区二区| 91精品久久久久久久久中文字幕 | 精品福利一区二区| 国产女片a归国片aa| 国产亚洲婷婷免费| 欧美日韩人妻精品一区在线| 精品一区二区在线观看| 欧美韩国日本在线| 亚洲精品日韩久久| www.国产二区| 亚洲欧美日韩高清在线| 日韩免费av电影| 日韩大胆成人| 国产91aaa| 亚洲国产一区二区三区网站| 成人在线播放av| 国产黄色精品| 国产精品久久久久久久久免费 | 精品久久久中文| 精品97人妻无码中文永久在线| 中文字幕成人网| 久久久久久亚洲中文字幕无码| aaa国产一区| 天堂www中文在线资源| 国产激情偷乱视频一区二区三区| 久久婷五月综合| 日本午夜一本久久久综合| 黄色影院一级片| 看一级黄色录像| 亚洲欧美视频一区二区| 亚洲人成电影网| 欧美美女搞黄| 日韩精品视频在线| 色中色在线视频| 日韩精品中文在线观看| 日色在线视频| 亚洲精品视频在线播放 | 精品视频在线导航| 天堂在线资源网| 亚洲成人黄色网址| 天天干天天干天天干| 亚洲精品一区二区三区香蕉| 亚洲大尺度网站| 精品成人免费观看| 午夜视频免费在线| 亚洲欧美在线免费| 国产中文字幕在线播放| 一区二区三区精品99久久| 97超碰国产一区二区三区| 日韩在线观看你懂的| 精品国产白色丝袜高跟鞋| 欧美人与性动交a欧美精品| 国产白丝在线观看| 538国产精品一区二区免费视频| 午夜影院一区| 国产精品91久久久| 四虎影视成人精品国库在线观看| 91久久国产精品| 97一区二区国产好的精华液| 国偷自产av一区二区三区小尤奈| 亚洲人成网www| 亚洲一区二区三区在线观看视频| 亚洲高清资源在线观看| 国产av熟女一区二区三区| 国产亚洲激情| 久热精品在线播放| 国产福利一区二区| 韩国无码一区二区三区精品| 久久久不卡网国产精品二区| 日本成人免费在线观看 | 在线看成人av| 日本道在线观看一区二区| 国产原创中文av| 亚洲成人激情在线| 69久久夜色| 欧美激情乱人伦一区| 激情开心成人网| 99久久综合狠狠综合久久止| 亚洲香蕉视频| 中国老女人av| 久久青草久久| 亚洲 自拍 另类 欧美 丝袜| 97精品国产露脸对白| www深夜成人a√在线| 精品动漫一区二区| 97人妻精品一区二区三区视频| 亚洲国产精品成人精品| 国产一级片在线| 久久久这里只有精品视频| 福利一区二区免费视频| 韩国成人一区| 天天综合国产| 日本精品久久久久中文字幕| 国产福利一区二区三区视频| 精品无码在线观看| 欧美日韩亚洲91| 国产肥老妇视频| 国产亚洲精品日韩| 美女网站在线看| 91视频网页| 97精品视频| 成人亚洲视频在线观看| 波多野结衣在线一区| 国产极品美女在线| 欧美在线观看一区| 欧美理论在线观看| 国产+人+亚洲| 日韩一二三区| 97超碰免费观看| 日本亚洲一区二区| 不卡一区二区在线观看| 亚洲国产精品影院| av一级黄色片| 久久天天躁狠狠躁夜夜躁2014| 成人日韩在线观看| 久久日韩精品| 一区二区国产在线观看| 国产香蕉精品视频| 一区二区三区精品| 99热这里只有精品9| 中文字幕亚洲在线| 国产一区二区三区影视| 任我爽在线视频精品一| 亚洲欧美日韩在线观看a三区| 亚洲成年人在线观看| 一二三区精品福利视频| 国产三级自拍视频| 久久这里只有精品99| 国产成人免费视频网站视频社区 | 91搞黄在线观看| 欧美3p视频在线观看| 欧美一二三视频| 日韩av三区| www.浪潮av.com| 久久综合色天天久久综合图片| 1级黄色大片儿| 日韩精品中文在线观看| 草草在线视频| 蜜桃久久精品乱码一区二区 | 亚洲欧美另类在线| 国产乱子伦精品无码码专区| 久久久久999| 视频在线观看免费影院欧美meiju| 青春草在线视频免费观看| 国产真实乱偷精品视频免| 天天操天天操天天操天天操天天操| 337p亚洲精品色噜噜噜| 成人午夜在线影视| 成人激情直播| 国产精品综合| 日本人亚洲人jjzzjjz| 欧美日韩视频不卡| 黄色国产网站在线播放| 99在线看视频| 国产欧美在线| 三上悠亚影音先锋| 制服丝袜亚洲网站| 里番在线播放| 欧美亚州在线观看| 看国产成人h片视频| 欧美卡一卡二卡三| 亚洲精品久久久久| 全球最大av网站久久| 在线无限看免费粉色视频| 岛国精品在线观看| 无码久久精品国产亚洲av影片| www.久久久久| 给我免费播放日韩视频| 久久精品99国产| 亚洲视频在线一区二区| 丰满肉嫩西川结衣av| 热99在线视频| 欧美在线国产| 三级黄色片网站| 欧美群妇大交群中文字幕| 日韩免费影院| 日韩三级电影免费观看| 国产精品99久久久久久似苏梦涵 | 岛国视频一区| 麻豆亚洲精品| 高h视频免费观看| 亚洲欧美日韩一区二区三区在线| 亚洲高清国产拍精品26u| 欧美黑人经典片免费观看| 国产精品萝li| 日韩精品系列|