`
terryfeng
  • 浏览: 511200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Silverlight 客户端本地消息通讯

阅读更多

在Silverlight 3 中添加了客户端不同应用程序之间的通信机制,当一台电脑上同时运行多个Silverlight 应用程序的时候,本地消息通讯可以在不同的Silverlight之间创建一个消息通道,有点像是一个Socket链接,一方在监听,一方发送。

发送端

public partial class LM_Sender : UserControl
    {
        //定¨义?本?地?消?息¢发¢送í对?象ó,?这a个?最?关?键ü,?接ó收?方?和í发¢送í方?的?实μ例y名?必?须?一?样ù才?行D,?好?比èMQ的?通¨道à一?样ù
        private LocalMessageSender msgSender = new LocalMessageSender("terryfeng");
        public LM_Sender()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(LM_Sender_Loaded);
        }

        void LM_Sender_Loaded(object sender, RoutedEventArgs e)
        {
            //提á前°加ó载?,?创′建¨消?息¢发¢送í完ê成é的?事?件t处|理í
            msgSender.SendCompleted +=
                new EventHandler<SendCompletedEventArgs>(msgSender_SendCompleted);
        }

        private void btnSent_Click(object sender, RoutedEventArgs e)
        {
            //发¢送í消?息¢
            msgSender.SendAsync(tbInput.Text);
        }

        void msgSender_SendCompleted(object sender, SendCompletedEventArgs e)
        {
            //显?示?回?复′的?消?息¢
            MessageBox.Show(e.Response);
        }
    }

 

接收端

public partial class LM_Rec : UserControl
 {
     public LM_Rec()
     {
         InitializeComponent();
         this.Loaded += new RoutedEventHandler(LM_Rec_Loaded);
     }

     void LM_Rec_Loaded(object sender, RoutedEventArgs e)
     {
         //创′建¨接ó收?消?息¢对?象ó
         LocalMessageReceiver msgRec = new LocalMessageReceiver("terryfeng");
         //创′建¨接ó收?消?息¢的?事?件t处|理í
         msgRec.MessageReceived +=
             new EventHandler<MessageReceivedEventArgs>(msgRec_MessageReceived);
         //开a始?侦ì听y
         msgRec.Listen();
     }

     void msgRec_MessageReceived(object sender, MessageReceivedEventArgs e)
     {
         //显?示?收?到?的?消?息¢
         tbkRec.Text = e.Message;
         //反′馈?消?息¢给?发¢送í者?
         e.Response = "我ò收?到?消?息¢了?,?谢?谢?!?";
     }
 }
分享到:
评论

相关推荐

    IM聊天系统源码(C#),支持桌面客户端和Silverlight客户端

    而Silverlight客户端则是一种浏览器插件技术,它使得聊天系统可以跨平台运行,不仅限于Windows,还可以在支持Silverlight的其他操作系统上使用,如Mac OS。Silverlight提供了丰富的图形和多媒体功能,使得聊天界面更...

    silverlight与wcf互相通讯

    然而,通过WCF,我们可以打破这一限制,使Silverlight客户端能够调用服务器端的服务,实现远程数据访问和业务逻辑处理。 首先,为了在Silverlight中引用WCF服务,我们需要在服务器端创建一个WCF服务。这涉及到定义...

    SilverlightQQ项目实践与架构思考

    SilverlightQQ是一个基于微软的Silverlight技术开发的即时通讯应用程序,它展示了Silverlight在构建富互联网应用(RIA)方面的潜力。Silverlight,作为.NET Framework的一部分,允许开发者创建具有丰富的用户体验、...

    ArcGIS RIA开发讲座 for Silverlight API.pdf

    增强了网络支持功能,如跨域访问、Web 客户端上传和双向通讯等;此外,还丰富了基类库,支持 collections、IO、generics、threading 等等,进一步提高了开发效率和用户体验。 - **Silverlight 2.0 正式版**(2008年...

    HTML5———下一代Web 开发标准研究

    通过WebSocket,开发者可以实现即时通讯、实时数据更新等功能,极大地提升了Web应用的交互性和响应速度。 - **优势**:与传统的HTTP请求相比,WebSocket减少了延迟,提高了数据传输效率,使得Web应用更加流畅。 ##...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    LocalStorage 本地永久性存储数据,除非显式将其删除或清空 SessionStorage 存储的数据只在会话期间有效,关闭浏览器则自动删除 Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C...

Global site tag (gtag.js) - Google Analytics