.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~

原文:.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~

目前的企业级开发比较流行的是Web2.0技术,但是由于Web技术基于请求--响应的交互模式,使很多效果无法有效的呈现。

 比如在Push技术上面,很多人感到头痛~ 如何让服务器主动请求Browser端~ 这个技术很多技术普通的开发人员都感到很难解决(包括我~呵呵)

    其实要在企业级开发中实现Push技术,难度是有,但是我们要懂得变换方式。 如果技术上一直卡在Push技术的研究上,很浪费时间。下面我讲讲我做的一个"伪Push” :

   一:实现Form与页面的交互

 HtmlDocument htmlDoc = webBrowser1.Document;//得到webBrowser1控件中页面的所有文档

            HtmlElement btnElement = htmlDoc.All["btnClose"];//在文档中找到需要和form交互的元素



            if (btnElement != null)

            {

                btnElement.Click += new HtmlElementEventHandler(HtmlBtnClose_Click);//给这个元素Click事件(元素为Button)加上EventHandler(委托方法名)

            } 

            

我这里给出的是简单的示例 这个示例详细版本来源为博客园一位仁兄~ 感谢~~

  二:实现伪Push

     我们现在已经能够实现form和页面进行交互了~ 那怎么实现Push呢?

   其实我使用form承载页面的原因就是在这里,可能有人会觉得我麻烦~ 为什么不用Ajax动态刷数据呢?这样是可以实现无刷新得到实时的新数据,但是不停的刷服务器和通讯上面都是会冒较大的风险,我说过我们做的是企业级开发,稳定性和安全性都应该考虑到,所以我选择使用form承载web页面,这样的话,一般业务上的工作流转和业务操作都可以用先进的web技术来呈现和执行,另外实时取得数据(停留在某页面上,不用刷新就能得到服务端主动发过来的新数据)在web上还不成熟,只能依靠ajax动态主动请求服务器来实现所谓的Push推进;这样显然不如用老技术:Socket好用~

  到这里大家也该明白我的思路了。  就是使用Socket技术进行信息交互,实现服务器指定某客户端去进行操作,然后通过form和页面的事件交互技巧来实现一个Push效果~



  第一次发技术文章,这个东西我是昨天想到的~ 以前一直没用过,通过在本社区里查找资料,得到一些技术支持。自己也做过实验,证明了这中想法的可行性~  如果各位有什么看法的话 留言给我~

上一篇:What’s New in Python 2.7 — Python 3.4.0b2 documentation


下一篇:C#WebBrowser控件使用教程与技巧