.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效果~

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

你可能感兴趣的:(WebBrowser)